Ansible 是使用 Python 开发的自动化运维工具,如果这么说比较抽象的话,那么可以说 Ansible 可以让服务器管理人员使用文本来管理服务器,编写一段配置文件,在不同的机器上执行。
Ansible 使用 YAML 作为配置文件,YAML 是一个非常节省空间,并且没有丧失可读性的文件格式,其设计参考了很多语言和文件格式,包括 XML,JSON,C 语言,Python,Perl 以及电子邮件格式 RFC2822 等等。
Ansible 解决的问题正是在运维过程中多机器管理的问题。当有一台机器时运维比较简单,当如果要去管理 100 台机器,复杂
Read more ...
Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model.
Choice
可供选择的方案,如下。
jBPM
jBPM 是一个用 Java 写的开源工作流引擎,可以用来执行 BPMN 2.0 定义的工作流。
Apache License 2.0
EasyBPMN
EasyBPMN Toolbox is a powerful Jav
Read more ...
昨天在和朋友讨论两个项目双向同步的问题,比如,两个从同一分支拉出来的两个独立项目各自发展,但又要求定时双向同步的时候,虽然提出了用 remote 可以临时解决一下。不过后来又和朋友讨论起 git subtree 来,在此之前,我如果有需要在项目内部依赖外部独立的项目时,我一般都使用 git submodule 来解决。不过昨天搜索了一下之后发现 git subtree 似乎更加强大,并且已经成为替代 git submodule 的事实方案。所以这里来学习一下。
在使用 git subtree 之前如果你没有用过 git submodule,这里先进行一
Read more ...
Prometheus 是一个用 Go 写的监控系统,最早由 SoundCloud 开发并开源,Prometheus 内置一个时序数据库。Prometheus 受到 Google borgmon 监控系统启发,2012 年起源于 SoundCloud 内部,后来成为第二个加入 Cloud Native Computing Foundation 的项目。
It collects metrics from configured targets at given intervals, evaluates rule expressions, display
Read more ...
之前浏览文章的时候偶然看到了 asdf 这个项目,然后惊讶的发现它整合了我之前经常使用的 pyenv 还有不太常用的 jenv, nvm, rvm,通过这一个命令就可以实现,所以立马在机器上试了一下。
Install
安装的过程具体可以参考官网,这里不多展开,Mac 下可以使用 Homebrew, 不过个人还是偏好使用 git clone 安装:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
然后在 ~/.zshrc 中添加:
. $HOME/.asdf/asdf.sh
Plug
Read more ...
DMA 内存区域,0~16MB 内存。
NORMAL 内存区域,16MB~896MB
HIGHMEM,高端内存区域。
用户空间
用户进程访问的内存空间,每个进程有自己的独立用户空间,虚拟地址从
0x00000000 到 0xBFFFFFFF
总容量 3G.
进程与内存
按照”访问属性” 划分五个不同的内存区域。
代码段
存放可执行文件的操作指令,可执行程序在内存中的镜像。
只读,不可写
数据段
可执行文件中已初始化全局变量,静态分配的变量和全局变量。
BSS
未初始化的全局变量
heap
heap 用来存放进程运行时被动态分配的内
Read more ...
今天和几个小伙伴体验了一下“现金流”这款桌游,其实在很早之前看过《穷爸爸,富爸爸》之后就了解到了这款游戏,但一直没有机会去尝试。很多人把这款桌游“吹”的很神,就像是玩过就能[[财富自由]]一样,虽然实际生活并不会像游戏一样,但多少能从中体验到一些心得。
规则
现金流的规则可以说是非常简单的了,玩过大富翁吗?把大富翁地图上的各种地标换成各种人生事件,领工资,各种机会,生孩子,失业等等,那就是游戏的开始。当然如果要跳出无穷无尽的轮回则需要思考自己手上资产负债表中的各项数字。从“老鼠圈”跳转到人生的快车道。
具体细节的规则网上也有很多,这里就不展开。直接
Read more ...
在给 tldr review 提交时,有一个命令引起了我的兴趣,那就是 qmv,当时简单的尝试了一下,浏览了一下 man page。没有仔细的深入,但昨天突然遇到一个需求,我要批量修改一个目录下文件的大小写,需要将大写部分修改成小写,一下子就想起了这个命令。虽然这个命令是作为移动来介绍的,但它也可以作为重命名来使用,毕竟重命名也算是移动的一种嘛。
命令的使用特别简单,直接使用 qmv 后面接目录名即可,然后会打开默认的文本编辑器, 比如vi,然后在其中能看到两列,左边是原始名字,后面是目标名,如果要批量修改重命名那就直接对后面一列进行编辑即可。最后保存
Read more ...
GitHub Actions 是 GitHub 推出的 CI/CD 工具,通过简单的语法可以做一些 build, deploy 等等的事情。
核心功能与用途
自动执行构建、测试、部署等流程,实现开发流程自动化。
可以根据代码仓库中的事件(如 push、pull request、issue 创建等)自动触发预设的工作流(Workflow)。
支持多种操作系统(Linux、Windows、macOS)的虚拟机环境,也可以使用自托管 Runner。
通过 GitHub Marketplace 可复用和共享他人编写的 Action,减少重复
Read more ...
如果你使用我之前推荐过的 asdf,可以直接通过 asdf 来安装 Rust 以及 bandwhich。
安装
增加 rust
asdf plugin-add rust
安装 rust 最新版
asdf install rust latest
设置全局生效
asdf global rust 1.51.0
这样你就可以在终端使用 cargo 来安装 bandwhich:
cargo install bandwhich
然后将 bandwhich 链接到 /usr/local/bin 中:
sudo ln -s /home/ei
Read more ...