Hello World!
第一行代码从 'Hello, world!' 开始!
以ORM看封装的边界
封装的隐藏建立清晰边界;高级语言抽象提供基础能力;而 ORM 的过度抽象可能制造“方便”的幻象,掩盖后台的复杂与低效,最终使系统变成难以掌控的黑盒
Git Merge VS Git Rebase: 如何优雅地合并分支?
相比于直接在main分支上提交,分支开发有并行开发、保护主分支稳定性等优点。合并问题应运而生...
修改Linux内核模块以支持WG
Linux通过编译安装内核的方式来使用原本内核没有启动的模块,如WireGuard
OpenLDAP折腾日记
折腾了几天OpenLDAP,终于是把它给部署上了。对于软件部署这件事,我的评价是不要完全相信网上任何一篇几年前的教程(包括这篇),可能一些操作是对的,但另一些操作已经过时了,这会导致一些莫名奇妙的错误。配置文件中配置项上一般会有注释,看懂了再改。 OpenLDAP服务端部署 Linux:RockyLinux9 安装相关软件这步没啥说的,照着安装就行了 123dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpmdnf upgrade -ydnf install -y openldap openldap-servers openldap-clients nginx phpldapadmin 安装后直接启动,不用顾虑 1systemctl start slapd 初始化首先查看自己的配置文件命令,这很重要。执行ls /etc/openldap/slapd.d/cn\=config/ 然后生成密码,执行命令 slappasswd -s...
非特权模式容器 ssh 登录问题
pam_loginuid(sshd:session): Error writing /proc/self/loginuid: Operation not permitted
在 Linux 开发环境中使用网络代理
开发环境所需的各种包往往都需要从国外网站下载,使用网络代理可以大大加快访问速度以及稳定性
白嫖 Aseprite 像素绘图软件
白嫖的原理是通过构建他在 Github 上开源出来的源代码,绝对官方正版。 前言听说 Aseprite 是一款非常不错的像素绘图软件,最近闲的没事,想试一下。 但是一看,官网售价 19.99 USD,Steam 售价 70 RMB,我实在是囊中羞涩,心有余而力不足。后来我才知道,原来这个玩意儿是开源的,由 C++ 语言编写。 既然他是开源的,那我们就可以通过源代码自己编译出此软件。 当然,安装过程也可以查看官方给出的文档,看官方文档最大的好处就是不用担心时效性而且绝对准确 前期准备 安装 Visual Studio 2022 并且记住安装位置 下载链接:https://visualstudio.microsoft.com/zh-hans/downloads/ 安装 Ninja 并配置进 Path 环境变量 下载链接:https://github.com/ninja-build/ninja/releases 安装 Skia 下载链接:Releases · aseprite/skia · GitHub 将解压出来的文件放到 C:\deps\skia...
MongoDB 增删改查
数据库操作查看所有数据库:show dbs; 切换数据库:use xxx; 没有xxx时会自动创建 新建集合(对应MySQL表):db.createCollection(‘xxx’); 常用文档操作命令(增删改查)增123456db.collection.insertOne( <document>, { writeConcern: <document> }) 123456db.collection.insertMany( <document>, { writeConcern: <document> }) 删123456db.emp.deleteMany({}) //删除所有文档db.emp.deleteMany({name: 'pillage'}) //删除所有name=pillage的文档db.emp.deleteMany({age: {$gt:...
Python数据分析工具包-Numpy
说明:通常所说的”数组”,”Numpy数组”,”ndarray”基本上都是指同一个东西,即ndarray对象。 Numpy常用函数以及用法(1)创建ndarray数组 使用array函数 说明:他可以接收一切序列型的对象,然后产生一个新的含有传入数据的Numpy数组。除非用dtype自定义类型,否则他会根据你传入的数据类型自动帮你匹配合适的类型。此类型规则为:如果有字符串,则优先字符串,如果没有字符串而有复数类型,则系统默认帮你判定为复数类型。然后依次为浮点数和整数。即优先级为”字符串>复数>浮点数>整数”。代码如下: 12345678910111213141516import numpy as nparray = np.array(['Hello', 1+2j, 5.20, 5])for i in array: print(i, ':', type(i))print('===============================')array = np.array([1+2j,...