代码规则化工具 Black Formatter
1 说明
用途:规范化代码格式
2 VSCode
在 VSCode 中安装 Black Formatter 插件
打开.py
文件,在文件空白处右击,选择格式化文档,该文档自动完善格式。
注意
VSCode 有自己的格式化工具,所以用 VSCode
写的代码格式都还行,主要处理其它不太规范的化码
不支持 ipynb 文件
3 命令行
pip install black
black xx.py
4 说明
我个人更喜欢命令行方式
Python在pdf中提取表格
1 Tabula-py
1.1 开源项目
https://github.com/chezou/tabula-py 1.9k star
1.2 安装
1pip install tabula-py
1.3 使用
12import tabuladfs = tabula.read_pdf(pdf_path, stream=True)
1.4 评测
它使用到 java 库,会使开发环境变得比较重
2 camelot
2.1 开源项目
https://github.com/atlanhq/camelot 3.5k star
https://github.com/camelot-dev/camelot 2.4k star
2.2 安装
1pip install camelot-py
2.3 评测
需要安装 opencv,opengl,安装起来比较麻烦,比较重。
3 pdfplumber
3.1 开源项目
https://github.com/jsvine/pdfplumber 4.7k star
3.2 安装
1pip install pdfplumber
3.3 评测
这是一个 pdf
解析库,不 ...
Python行对齐工具difflib
1 用途
1.1 功能
对比两个字符串数组之间的差异,以第一个参数为基准,与第二个参数比较。
1.2 使用场景
一个原文件,一个改过的文件,对比差异;
一个纯文本,一个带格式的,对比差异;
比较不同方法生成的文本的差异。
1.3 使用体验
实现的功能类似于 Linux 中的 diff
命令;内容少看不出来好,内容一多,效果明显。这功能手写得疯了。
2 使用方法
2.1 示例
1234567891011121314151617import difflibdef compare_and_align(text1, text2): # 创建 Differ 对象 d = difflib.Differ() # 使用 Differ 对象比较文本 for x in d.compare(text1, text2): print(x) print('----')# 两个文本示例text1 = ["This is a sample text for alignment.","a"," ...
买域名
最近 ip 快把我弄疯了,然后买了个域名,一个来小时就能用了。
原因
做自己软件的后台服务
给客户做演示
做自己主页,以及被搜索引擎收录
使用 vpn 隧道 / 内网穿透,需要设置地址
科学上网需要设置中转服务地址
ip 地址记不住
租了多个云服务器,想统一入口
需要固定的地址,而云服务器重启后 ip 有变化
问题及解决
价格
一年几十块钱,新用户第一年比较便宜(一顿普通的午饭钱)
需要多长时间
比如在某度买,需要实名认证(认证成功发短信),人工认证需要几个小时
设置域名解析,一般 30 分钟内生效,最常不会超过 24 小时
我有多个云服务器,如何使用同一个域名
服务商可提供把不同功能指向不同服务器,比 www.aaa.com
指向一个服务器,test.aaa.com 指向另一个,可在规则中设置。
也可在其中主要服务器上做端口映射
是否需要备案
如果服务器在国内且做自己的网站(有网页或 Http
服务),则需要备案,详见 备案
配置VPN
1 问题解析
VPN 的使用前提是需要知道对方主机 ip 地址及开放的端口。
我遇到的问题是,自用的机器 A 和服务器 B 都没有固定 IP,机器 A
在局域网里,机器 B 使用物联网卡,本身没有对外的 IP
地址,物联网厂商也不提供端口映射。
这样 A 只能使用“向日葵”类的远程桌面软件连接服务器 B,它的问题是:
同一时间只能供一个连接操作
远程桌面传输屏幕变化,比只传输字符的 ssh 类工具慢很多
向日葵在用户登录后才能启动,所以如果远程无人职守,重启后就连不上了
不能复制粘贴,拷个东西费死劲,很多命令只能手敲,界面还反应慢
我的解决方案是:
使用 VPN 隧道,在一台有外部 IP 的云服务器 C 上搭建 VPN,然后用 A 和
B 同时连接 C,此时它们在同一网络中,即可使用 A 访问 B。
进一步简化:只在 B 和 C 上配置 VPN,然后把 B 的端口映射成到 C
的端口,任意机器通过 C 来访问 B,这种做法的优点是不用配置
A,缺点是所有需要暴露的端口都需要映射。选择哪一种方法,主要看需求。
2 生成密钥
2.1 Easy-RSA
Easy-RSA 是一款用于生 ...
Obsidian_插件推荐231005
Obsidian 插件
十一在家整理 OB 笔记,发现两个超好用的插件:Linter & tag
wrangler。
起因
前一阵把 Obsidian 笔记用 Hexo 转换成静态网页发到 github.io 做自己
blog 网站。发现了笔记中的一些问题,比如 tag 过多、重复,markdown
格式不规范,导致转换过程报错,转换后格式混乱…… 虽然用 Python
解决了,但是过程非常别扭:需要穿叉调用 Python 和 Javascript
环境,然后就想,要不学学
TypeScript,自己写插件吧?再后来发现:原来这些都有人写过了,汗死……
分享一下,希望也能提升亲们的笔记效率。
tag wrangler
tag wrangler 目前位居下载量排行榜第 16 位,是个热门插件。
对于笔记多,标签复杂的用户非常实用。文章多了,修改标签,做层级标签,重做分类是非常常见的操作,很难想象手动修改上百个标签,tag
wrangler 可以很好地解决这一问题。
在三方插件界面安装 tag wrangler 后,在 Tags
面板中的标签上点右键,即可看到新菜单,其中的 Ren ...
论文阅读_GPT4_4V
123456英文名称: The Dawn of LMMs: Preliminary Explorations with GPT-4V(ision)中文名称: LMM 的黎明:GPT-4V 的初步探索文章: http://arxiv.org/abs/2309.17421中文翻译:https://mp.weixin.qq.com/s/a8Y_yU5XYgJhQ2xMuTK13w作者: Zhengyuan Yang日期: 2023-09-29
1 读后感
GPT-4V 是基于 SOTA LLM
并使用大量多模态数据训练的最先进的具有视觉能力的 LMM。
论文是 2023 年 9 月 29 日微软发布
GPT-4V(视觉)的研究报告。主要讨论了多模态及其在各场景中的应用。文章不涉及公式及具体实现方法,整体偏重经验和测试,看了之后可以少走一些弯路。文章
166 页,近 3W 字,124
张图片,乍一看觉得挺长的,不过实验挺丰富挺有意思的,有点像在飞机上翻杂志的感觉。
整个文章看下来,感觉就像是培养一个机器 " 人
",从底层的视觉和文本能力,推理能力,智商情商,到后面的与物理世界交互,解决具体问 ...
沉浸式翻译
1 介绍
名称:沉浸式翻译(浏览器插件)
地址:https://immersivetranslate.com/docs/installation/
优势:
中英文翻译对照
支持 pdf 翻译
2 使用方法
方法 1:点击右上角翻译图标
方法 2:在网页右键选“沉浸式翻译”
3 快捷键
Alt+W: 翻译整个页面。
Alt+A: 翻译/切换原文(在 arxiv 上翻译论文非常好用)。
Ubuntu远程桌面_向日葵
1 说明
通过即时生成的序列号和验证码访问远程主机桌面
各操作系统均可使用,可相互调用
无需考虑 IP 问题
2 安装方法
2.1 下载
https://sunlogin.oray.com/download/linux?type=personal
注意:尽量下图形版,命行行版比较旧,Ubuntu 22.04 报错找不到库
2.2 安装
1$ sudo dpkg -i SunloginClient_11.0.1.44968_amd64.deb
2.3 运行
1$ /usr/local/sunlogin/bin/sunloginclient
CentOS系统
1 yum 简单用法
12$ yum search 名称包含的关键字$ yum install -y xxx
2 软件
2.1 安装 docker 环境
123456$ yum install -y yum-utils device-mapper-persistent-data lvm2$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum makecache fast$ yum -y install docker-ce$ systemctl start docker$ systemctl enable docker
3 安装 pgsql
1$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm