免费申请域名 SSL 证书, 无限续期,基于 Let’s Encrypt
说明
本文记录单域名(A/普通域名)使用 Certbot 自动签发并自动续期的实施过程,着重讲述基于 --nginx 的常见流程与注意事项。泛域名(Wildcard)证书需要 DNS-01 验证(DNS API 或手动添加 TXT 记录),不在本文讨论范围。
安装 Certbot
以Ubuntu 系统为例:
sudo apt update
sudo apt install certbot python3-certbot-nginx
更多安装方式请参考 Certbot 官方文档。
单域名证书:申请流程
假设要为 test.example.com 申请证书,并且 Nginx 已经配置好对应的 server_name 并能通过 80 端口被外网访问。
使用 nginx...
Installing LightGBM on an M1 Macbook
Installing LightGBM on an M1 Mac
While setting up LightGBM on my M1 Mac, I discovered that the default pip install lightgbm command does not work due to compatibility issues with Apple Silicon and libomp dependencies.
After trying various fixes, including setting environment variables and reinstalling libomp via Homebrew, I still encountered i...
如何在Ubuntu系统上配置PostgreSql并且启用vector
虚拟机方式
1:安装 PostgreSQL
1.更新系统包列表
sudo apt update
虚拟机方式
1. 安装 PostgreSQL
更新系统包列表
sudo apt update
安装 PostgreSQL
sudo apt install -y postgresql postgresql-contrib
启动并启用 PostgreSQL 服务
sudo systemctl start postgresql
sudo systemctl enable postgresql
2. 切换到 postgres 用户并设置密码
PostgreSQL 安装后默认创建一个名为 postgr...
分布式系统中的CAP理论与事务
当把单体服务按功能领域拆分成多个微服务模块,每个模块为高可用又做多个副本部署,一个完整的事务流程就需要多个微服务组合完成。分布式系统的核心问题,就是各个节点的状态如何同步。CAP定理就是对这个问题的理论描述。
1998年,Eric Brewer 提出,分布式系统有C、A、P三个关键指标,并且不能同时满足。
Consistency:一致性
Availability:可用性
Partition tolerance:分区容错性
CAP
Partition tolerance
分区容错性是分布式系统的一个关键特性,是系统遇到网络故障导致分区(即系统内的节点间通信因网络故障而被部分或完全切断)时,仍然能够继续服务的能力。由于网络本身的不稳定性,网络分区是一种可能出现的常...
如何在Python中使用异步方式连接mysql
数据库请求是典型的 IO 密集型任务,因为它大部分时间都在等待数据库服务器的响应。因此,如果应用程序需要发起大量数据库请求,通过并发执行这些请求可以显著提升性能,在使用 FastAPI 进行 Web 开发时,我们经常需要在协程(即通过 async def 语句定义的函数)中发起数据库请求。本文记录了在不同场景下如何异步使用 SQLAlchemy
1. 安装所需依赖
conda create -n sql python=3.12
conda activate sql
pip install SQLAlchemy==2.0.40
pip install aiomysql==0.2.0
pip install cryptography==44.0.2
sqlalchemy:SQ...
如何在本地搭建latex运行环境以及常用模版
Latex环境安装是非常繁琐的,本文记录下如何在本地电脑中使用OverleafToolkit和Docker-compose搭建Overleaf服务,来使用全部的latex功能,包括配置、镜像修改和启动服务的步骤。
安装 Overleaf
step 1:clone项目
git clone https://github.com/sibosend/overleaf-toolkit.git
cd ./overleaf-toolkit
step 2: 初始化配置
bin/init
ls config
# config目录下会生成以下三个文件: overleaf.rc:顶级配置文件 variables.env:加载到 docker 容器中的环境变量 version:使用的 doc...
how to obfuscate a python project
一些场景下,需要对python源码进行混淆加密,可选成熟方案是使用 pyarmor。在调研过程中,一些使用说明过于简洁,因此留档此demo项目。
示例工程 https://github.com/sibosend/python_obfuscate_demo
频繁遇到package找不到的错误,关键在于需要对内部package分别进行混淆处理,见 pyarmor.py
todo:
混淆后项目的跨平台可执行性尚待实践。
how to install blender as a python module on Ubuntu 20.04
在服务器上需要用到Blender bpy库来处理3D模型,发现普通安装过程非常难解决环境依赖问题,无论是 pip install bpy,还是按照官网推荐的 source code compile方式,都不容易走通。
解决方案是使用 wheel 方式安装,不用关心依赖关系了~
# 创建虚拟环境
conda create --prefix /folder/condaenv/blender python=3.10
conda activate /folder/condaenv/blender
# 下载whl
wget https://pypi.tuna.tsinghua.edu.cn/packages/9c/cf/536e231d0fff186e46668ae701f6788cdd7...
24 post articles, 3 pages.