Home

免费申请域名 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...

Read more

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...

Read more

如何在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...

Read more

分布式系统中的CAP理论与事务

当把单体服务按功能领域拆分成多个微服务模块,每个模块为高可用又做多个副本部署,一个完整的事务流程就需要多个微服务组合完成。分布式系统的核心问题,就是各个节点的状态如何同步。CAP定理就是对这个问题的理论描述。 1998年,Eric Brewer 提出,分布式系统有C、A、P三个关键指标,并且不能同时满足。 Consistency:一致性 Availability:可用性 Partition tolerance:分区容错性 CAP Partition tolerance 分区容错性是分布式系统的一个关键特性,是系统遇到网络故障导致分区(即系统内的节点间通信因网络故障而被部分或完全切断)时,仍然能够继续服务的能力。由于网络本身的不稳定性,网络分区是一种可能出现的常...

Read more

如何在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...

Read more

如何在本地搭建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...

Read more

how to obfuscate a python project

一些场景下,需要对python源码进行混淆加密,可选成熟方案是使用 pyarmor。在调研过程中,一些使用说明过于简洁,因此留档此demo项目。 示例工程 https://github.com/sibosend/python_obfuscate_demo 频繁遇到package找不到的错误,关键在于需要对内部package分别进行混淆处理,见 pyarmor.py todo: 混淆后项目的跨平台可执行性尚待实践。

Read more

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...

Read more