跳到主要内容

50 篇博文 含有标签「编程」

查看所有标签

pycharm使用远程环境后

会将远程的python环境download下来

然后放到pycharm的缓存目录下

在远程端口更新某个包后

本地的缓存还是这个包的老版本缓存

在debug打断点的时候会贼难受

目前还没有找到解决方案

记录一下。

参考:

解决方法:

  1. Try Settings | Project ... | Project Interpreter | Gear button | Show all | Show paths for the selected interpreter | Reload list of paths solution 1

  2. Go to External Libraries in the project tree and expand it. Right click on "Remote Libraries", you will see an option to "Synchornize 'number'"(并没有找到这个按钮) solution 2

3."Invalidate Cache/ Restart" under file menu but still the update of remote library.

编程阅读需 1 分钟

  • 在终端输入netstat -ano | findstr 5555获取占用 5555 端口的进程 pid
  • tasklist | findstr pid查看是那个进程占用了
  • 发现是 docker 占用了 关掉退出就好了
  • 可以选择暴力一点的方法 taskkill /pid 1234 /f (/f 指的是强行结束)
  • 利用进程的 PID 结束进程:ntsd -c q -p 1332 (结束 explorer.exe 进程)

参考

编程阅读需 1 分钟

博客想加个 steam 连接,但是没有 logo。找了半天终于找到配置方案,记录一下。

首先要找到一个叫 iconfontCssFile 的配置,知道可以引用在线的 css。

然后进 https://www.iconfont.cn/ 搜 steam 找到自己想要的图片 点击购物车图标添加至购物车。

右上角购物车添加至项目,没有就自己创建一个项目。

添加后就可以在项目中生成在线地址了。

好了,通过 vdooing 的配置已经加上 steam 连接了。

编程阅读需 1 分钟

  • 拿到了 GitHub Copilot 的使用权,真的很香,
  • 为此开始尝试使用 vscode 编程折磨自己。
  • 以前总说小体积 vscode 比不上 IDE pycharm,
  • 确实没有插件啥也不是,有插件了估计比 pycharm 还重。
  • vs code 选插件真的是很痛苦的事情,弄个表做个备份。

  • aw-watcher-vscode - ActivityWatch 监控插件
  • Code Spell Checker - 代码拼写检查
  • Darcula PyCharm Theme Darcula - PyCharm 主题
  • Deploy - 服务器部署
  • Docker - docker 插件
  • Foam for VSCode - 思维导图生成插件
  • GitHub Copilot - github 代码补全插件
  • GitLens — Git supercharged - 查看改动记录 ,文件历史
  • IntelliJ IDEA Keybindings - IntelliJ IDEA 快捷键
  • Jupyter ms-toolsai.jupyter - python jupyter 插件
  • MagicPython - python 调试插件
  • Markdown All in One - markdown 插件
  • Markdown Links - markdown 链接图生成插件
  • Markdown Notes - Markdown 贴条插件
  • Markdown Preview Mermaid Support - markdown Mermaid 图插件
  • markdownlint - markdown 代码检查
  • Marp for VS Code - markdown 转 ppt
  • Mermaid Markdown Syntax Highlighting - markdown Mermaid 语法高亮
  • Note Sync - 把 vscode 当笔记用的时候的同步插件
  • npm - npm 拓展
  • Open Window Tab Context - 右键 tab 再新打开一个窗口
  • Paste Image - markdown 贴图小助手
  • Prettier - Code formatter - 代码格式化
  • Pine Script Syntax Highlighter - pine 脚本语言代码高亮
  • Pylance - python 拓展包
  • Python - python 拓展包
  • Python Docstring Generator - google 风格 python 文档快速生成
  • Remote - Containers - docker 助手
  • Remote - SSH - 远程连接助手
  • Remote - SSH: Editing Configuration Files - 远程连接助手 2
  • Remote - WSL - wsl 远程连接助手
  • Remote Development - 远程部署合集包
  • Vetur - vue 拓展包
  • vscode-pdf - pdf 打开插件
  • vsinder - 交友插件
  • WakaTime - 活动记录统计插件
  • vim - vim 拓展包
  • git graph - git 图表
  • Markdown Mind Map Preview - markdown 转思维导图
  • vscode-office - markdown 所见所得

编程阅读需 2 分钟

  • 证书
  • [[搭建 xray-shadowsock]]
  • 推荐一个新的证书申请 certbot
  • [[certbot 证书]]

ssl

通过 acme.sh 生成证书并自动更新

curl  https://get.acme.sh | sh
apt install socat
/root/.acme.sh/acme.sh --register-account -m my@example.com
/root/.acme.sh/acme.sh --issue -d www.mydomain.com --standalone
/root/.acme.sh/acme.sh --upgrade --auto-upgrade

编写一键更新脚本

需要先关闭 nginx systemctl start nginx

  • 写了个脚本:vim /root/script/acme_job.sh
    • 更新 acme
    • 更新证书
  • 官方说两个月会自动更新。因为 Nginx 占用会失败。
echo "start acme.sh $(date +"%Y-%m-%d %H:%M:%S")"
systemctl stop nginx
/root/.acme.sh/acme.sh --upgrade --auto-upgrade
/root/.acme.sh/acme.sh --renew -d www.mydomain.com --force
/root/.acme.sh/acme.sh --renew -d www.mydomain2.com --force
systemctl start nginx
echo "finish acme.sh $(date +"%Y-%m-%d %H:%M:%S")"
echo "==========================="

设置自动执行时间

设置执行时间:

  • 05:02 执行脚本 (大概率不在这个时间段玩电脑)
  • vim /var/spool/cron/crontabs/root
2 5 * * * /usr/bin/bash /root/script/acme_job.sh > /var/log/acme_job.log
查看自动更新脚本日志
tail /var/log/acme_job.log
tail /var/log/cron.log

认证超时问题

查看日志

查看日志docker logs ss-libev -f --tail 20

2021/09/10 10:08:03 http: TLS handshake error from 192.168.1.1:999: remote error: tls: bad certificate
2021/09/10 10:08:04 http: TLS handshake error from 192.168.1.1:999: remote error: tls: bad certificate
2021/09/10 10:08:05 http: TLS handshake error from 192.168.1.1:999: remote error: tls: bad certificate
2021/09/10 10:08:06 http: TLS handshake error from 192.168.1.1:999: remote error: tls: bad certificate
  • 证书过时了
  • 输入命令更新证书:/root/.acme.sh/acme.sh --upgrade --auto-upgrade
  • 然后报错了:
[Fri 10 Sep 2021 10:11:37 AM CST] Renew: 'www.mydomain.com'
[Fri 10 Sep 2021 10:11:37 AM CST] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Fri 10 Sep 2021 10:11:37 AM CST] Standalone mode.
[Fri 10 Sep 2021 10:11:37 AM CST] LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1481169,fd=8),("nginx",pid=898219,fd=8))
LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=1481169,fd=9),("nginx",pid=898219,fd=9))
[Fri 10 Sep 2021 10:11:37 AM CST] tcp port 80 is already used by (("nginx",pid=1481169,fd=8),("nginx",pid=898219,fd=8))
80 [
[Fri 10 Sep 2021 10:11:37 AM CST] Please stop it first
[Fri 10 Sep 2021 10:11:37 AM CST] _on_before_issue.

  • ubuntu 需要 打开 crontab 日志
    • vim /etc/rsyslog.d/50-default.conf
    • 打开文件,在文件中找到 cron.*,把前面的 '#'去掉,保存退出,输入
    • sudo service rsyslog restart
  • 重启系统日志,然后稍微等下应该就能在 /var/log 目录下看到 cron.log,vim cron.log 就可以查看 cron 运行日志了。

acme.sh 报错 can not get domain token

Error, can not get domain token "type":"http-01","url":"https://acme.zerossl.com/v2/DV90/chall/ZlNEi3nO05c_rSrqfaId_A","status":"invalid","error":{
Please add '--debug' or '--log' to check more details.
  • 参考
  • /root/.acme.sh/acme.sh --issue -d www.mydomain.com --standalone --server https://acme-v02.api.letsencrypt.org/directory
编程阅读需 2 分钟

参考

ssl

通过 acme.sh 生成证书并自动更新

curl  https://get.acme.sh | sh
apt install socat
/root/.acme.sh/acme.sh --register-account -m my@example.com
/root/.acme.sh/acme.sh --issue -d www.mydomain.com --standalone
/root/.acme.sh/acme.sh --upgrade --auto-upgrade

配置配置文件

mkdir /etc/shadowsocks-libev

# vim /etc/shadowsocks-libev/config.json
{
"server":"0.0.0.0",
"server_port":9000,
"password":"password",
"timeout":300,
"method":"aes-256-gcm",
"fast_open":true,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin":"xray-plugin:tls;host=www.mydomain.com",
"plugin_opts":"server"
}

docker 启动 shadowsocks

docker pull teddysun/shadowsocks-libev
docker run -d -p 9000:9000 -p 9000:9000/udp --name ss-libev --restart=always -v /etc/shadowsocks-libev:/etc/shadowsocks-libev -v /root/.acme.sh:/root/.acme.sh teddysun/shadowsocks-libev

客户端配置

  • xray-plugin 下载对应软件
  • 放到 shadowsocks 客户端文件夹里
  • 写入配置
    {
"server": "www.mydomain.com",
"server_port": 9000,
"password": "password",
"method":"aes-256-gcm",
"plugin": "xray-plugin",
"plugin_opts": "tls;host=www.mydomain.com",
"plugin_args": "",
"remarks": "mydomain.com",
"timeout": 5
},
  • 安卓用户点 这里 下载

编程阅读需 1 分钟

  • [[自建 RSS 订阅]]

  • 在博客或者项目底端找到RSS连接,获取URL。

eg. https://anguswg.github.io/AngusWG/rss.xml

rss

  • IFTTT注册账号
  • CREATE NEW 创建一条新规则
  • IF RSS 增加条件 如果rss更新

search rss add RSS URL

  • THEN EMAIL

Trigger email

feedly

这里有另一个订阅方式 feedly 操作上也是获取RSS,贴上去就好了~

Outlook RSS(目前使用中)

outlook自带了一个rss订阅方案

  • 首先会把所有的文章都下载下来。
  • 我每天都会检查邮件,放在outlook反而更方便。
  • 不足是找不到订阅连接,所以都先放到了友情链接

编程阅读需 1 分钟

  • 下载 cygwin

  • 安装时选择包 make

  • C:\cygwin64\bin添加到系统环境变量第一条 ,放后面会有 bug.

  • 然后就可以用了

  • 有挺多 Linux 命令的,在没有将 wsl2 作为主力平台的时候,cygwin 的挺多命令能弥补 windows 的部分不足。

编程阅读需 1 分钟

下载官方的部署项目

git clone https://github.com/getsentry/onpremise.git
cd onpremise
git chechout 9.1.2

docker 换源

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hkoa9dfz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装

export SENTRY_IMAGE='sentry:9.1.2'
./install.sh

运行 Sentry docker-compose up -d

Bug

解决 sentry 安装时的 could not translate host name “postgres” to address: Name or service not known

docker rmi postgres
docker pull postgres:9.6

更新后发现表不兼容
偷懒直接删掉了

编程阅读需 1 分钟

推荐一下 vim 的视屏学习
玩转 Vim 从放弃到爱不释手 - PegasusWang

这是个人对 PegasusWang 视屏学习笔记

img


图片来自 RUNOOB

img


a append
i insert
o open a line below

A append after line
I insert before line
O append a line above

vs vertical split 
sp split

普通选择 v
选择行 V
ctrl + v 方块选择

y 复制

ctrl + h 删除上一个字符
ctrl + w 删除上一个单词
ctrl + u 删除当前行
ctrl + a 跳到开头
ctrl + e 跳到结尾

快速回到最后编辑 gi

w/W 移到下一个 word/WORD 开头
e/E 下一个 word/WORD 结尾
b/B 回到上一个 word/WORD 开头 backword

f{char} 移动到 char 字符上 F{char} 向前搜索
t{char} 移动到 char 的前面字符上
;, 选择上一个下一个

0 移动到行头 ^移动到行头非空白
$ 移动到行尾 g_移动到行尾非空白

() 在句子间移动
{} 在段落间移动

:help 查看帮助

gg/G 移动到文件开头和结尾
ctrl+o 快速返回
H/M/L 跳到屏幕的 Head / Middle / Lower
Ctrl +u / Ctrl +f 上下翻页 upword / forward
zz 把当前行设置为屏幕中间

d 配合使用删除一个单词
x 删除一个字符

dw 删除单词光标及之后的
daw 删除单词包括之后的空格
diw 删除单词

r replace 替换一个字符 R 不断替换
s substitute 插入模式 S 整行删除进入插入模式
c change
c t {char} 删除 到 char 并进入插入模式

/ or ? 向前向后搜索
n/N 上一个 下一个匹配
\* \# 向前向后匹配 直接搜索当前光标的单词

vim 替换命令
:[range] s[ubstitute]/{pattern}/{string}/[flags]
range 表示范围 比如 :10, 20 表示 10-20 行,%表示全部
pattern 是要替换的模式,string 是替换后文本
Flags 有几个常用的标志
g(global) 表示全局范围内执行
c(confirm) 表示每次确认
n 报告匹配的到的次数而不替换 可以用来查询匹配次数

vim 复制粘贴与寄存器

normal 模式下复制粘贴:
y(yank) 复制
p(paste) 粘贴
d 删除
使用 d 和 p 组合可以达到剪切的效果

visual 模式下选择,normal 模式下再使用 p 粘贴

yiw 复制一个单词 p 粘贴
yy 复制一行 p 粘贴
dd 删除一行 p 粘贴

insert 模式下的粘贴
Ctrl+v(Windows)
Cmd+v(MacOs)
鼠标右键-粘贴

Ctrl + n / ctrl + p 补全单词
ctrl+x ctrl+f 补全文件名
ctrl +x ctrl +o 补全代码

Vim-plug
https://github.com/junegunn/vim-plug
插件搜索:
https://vimawesome.com/

启动界面
https://github.com/mhinz/vim-startify

修改启动界面:https://github.com/mhinz/vim-startify
状态栏美化:https://github.com/vim-airline/vim-airline
增加代码缩进线条:https://github.com/yggdroot/indentline

call plug#begin('~/.vim/plugged')
Plug 'mhinz/vim-startify' " 修改启动界面
Plug 'vim-airline/vim-airline' " vim 状态栏美化
Plug 'vim-airline/vim-airline-themes' " vim 状态栏美化
Plug 'yggdroot/indentline' " 增加代码缩进线条
Plug 'w0ng/vim-hybrid' " 主题 :colorscheme hybrid

Plug 'scrooloose/nerdtree' " 文件目录
Plug 'ctrlpvim/ctrlp.vim' “ 模糊查找
Plug 'easymotion/vim-easymotion' " 文内映射
Plug 'tpope/vim-surround' " 单双引号 修改 ds cs ys
Plug '/usr/local/opt/fzf' " 模糊搜索
Plug 'junegunn/fzf.vim' " 模糊搜索 Ag 模糊搜索字符串 Files 模糊搜索目录
Plug 'brooth/far.vim' " 批量替换
Plug 'majutsushi/tagbar' " 浏览代码用

" Initialize plugin system"
call plug#end()

vim-go go ide
python-mode python 综合 mode
jedi-vim 代码补全
vim-interestingwords 高亮感兴趣的单词
neovim/vim8 异步补全插件
tpope/vim-commentary 代码注释

git 相关
vim-fugitive vim 里用 git
vim-gitgutter vim 里显示文件变动
gv.vim 查看代码提交记录

Tmux 强大的终端管理器

neovim 替代 vim

https://github.com/PegasusWang/vim-config


《Practical vim》
《笨方法学 vimscript》

编程阅读需 3 分钟