Vagrant 是一个对虚拟机进行管理的工具,使用前需要先安装好虚拟机 VirtualBox。 Mac 可以直接通过 brew 安装,Windows 系统需要下载安装包。 brew install --cask virtualbox brew install --cask vagrant Vagrant 有个 box 的概念,这个可以理解为一个安装好的 iso 文件。 Box...
maven-release-plugin
maven-release-plugin,是官方的插件,可以结合 ci 或者发布人员手工做一些自动化工作:发布到 maven 仓库、打 tag 和自动更新 git 仓库中 pom.xml 文件的版本号。 要使用该插件需要满足两个条件: the scm-section with a developerConnection,在 pom.xml 文件中需要有 <scm> &l...
Java SPI
概念 Service provider interface (SPI) is an API intended to be implemented or extended by a third party. It can be used to enable framework extension and replaceable components. SPI 是需要被第三方实现或者...
Docker
[toc] Docker 是一款开源软件,用于开发、交付和运行应用程序。 Docker 允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。 Docker 容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示软件的一个标准化单元...
Chip-On-Board
工行给的那个电子密钥没电了,今天拆开看了下,里边电路板上有坨黑色的东西,小时候玩的红白机卡带也常见到这黑色的东西。网上查了查,这也是芯片的一种封装方式,叫做 Chip-On-Board,业界好像也给它一个昵称“牛屎封装”。 Chip-On-Board (COB) 常见的芯片封装形式是把晶元放在金属、陶瓷或者塑料的壳体内,然后通过金线连接晶元和芯片管脚。 但 COB 的封装形式是...
消息队列
[toc] 消息队列是一种进程间通信或同一进程的不同线程间的通信方式,直观一点的理解可以直接从字面进行理解,消息队列就是一个容纳消息的队列,producer 有新的消息就丢给队列,consumer 轮询队列进行消息的获取。 高级消息队列协议(Advanced Message Queuing Protocol AMQP)是面向消息中间件提供的开放的应用层协议。 消息队列有很多基于不同协议...
Git 对象
.git 这个隐藏文件夹可以视为 git 的本地仓库,其内部文件主要由以下部分组成,有些是文件有些是文件夹。 └── .git ├── COMMIT_EDITMSG # 保存最新的commit message ├── config # 仓库的配置文件 ├── description # 仓库的描述信息,...
Java Annotation
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。 Java 定义...
SSH
SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信。OpenSSH 是其一个开源实现。 SSH 的软件架构是服务器-客户端模式(Server - Client)。在这个架构中,SSH 软件分成两个部分:向服务器发出请求的部分,称为客户端(client),OpenSSH 的实现为 ssh;接收客户端发出的请求的部分,称为服务器(server),OpenSS...
Vim Shortcuts
网上的一篇 vim 新手教程,非常不错。 简明 VIM 练级攻略 :help x 命令帮助 :e file 打开另一个文件到 buffer :bn 切换 buffer :bp 切换 buffer . 重复上个命令 N<command> 重复某个命令 N 次 100ihello [esc] 插入 100 个 hello % 括号跳转 * # 匹...