「 CLOUD 」 一月 17, 2021
薅 AWS 羊毛
文章字数 5.5k 阅读约需 5 mins.
AWS,即 Amazon Web Services,是由 Amazon 提供的云服务。在 Gartner 新的 2020 年云基础设施和平台服务 (CIPS) 魔力象限 中,Gartner Research 将 AWS 定位在“领导者象限”中。在此魔力象限中,CIPS(Cloud Infrastructure and Platform Services)被定义为“标准化、高度自动化的产品,其中基础设施资源(例如计算、联网和存储)由集成式平台服务加以补充。”
作为领导者,AWS 提供的福利也是很...
查看全文「 MAC 」 一月 10, 2021
MacOS 制作 USB 启动盘
文章字数 5.8k 阅读约需 5 mins.
安装操作系统时,当前常用的方式是获取操作系统对应的 ISO 文件,并制作 U 盘启动盘,使用 U 盘引导系统进行安装。
当使用 MacOS 时,可以很方便的利用系统自带工具,完成上述工作,具体步骤如下。
推荐从官方进行下载,如:
下载到的文件名如 Win10_20H2_v2_Chinese(Simplified)_x64.iso、ubuntu-20.04.1-desktop-amd64.iso、CentOS-7-x86_64-DVD-2003...
「 SERVLET 」 十二月 27, 2020
Override same class
文章字数 7.5k 阅读约需 7 mins.
实际 Java Web 项目中经常会遇到这样的场景:希望对依赖的某个三方库中的行为进行覆盖式的定制(修改三方库中的某些行为),但并不希望发布定制的版本至私服。
通常在使用 WAR 包发布应用时,可将定制的类编译成 class 文件,放入 WEB-INF/classes 路径中,即可覆盖放置在 WEB-INF/lib 路径下的三方库中同名类,达到定制的目的。
那么为什么可以这样?
在两个相同的 class 必须都存在于 JAR 包中时,又怎么实现这种需求呢?
Servlet 规范
查看全文「 DEVOPS 」 十二月 20, 2020
TeamCity Kotlin DSL
文章字数 13k 阅读约需 12 mins.
将持续集成环境的配置代码化(Configuration as code)有很多好处:
- 可借助版本控制系统(VCS)对配置进行管理
- 很容易对配置变更进行审查(review)
- 提高配置的可移植性
- 不同的分支可以执行不同的构建,甚至是未合并的请求分支以及历史构建
目前常见的持续集成服务都提供(甚至仅有)代码化配置方式,如:
- Travis CI 的
.travis.yml - GitHub Actions 的放在代码仓库
.github/workflows路径下的 workflow yml 文件 - GitLab...
「 SHELL 」 十二月 13, 2020
zsh
文章字数 5k 阅读约需 5 mins.
macOS Catalina 飞起来了 之后,发现打开终端时会提示 The default interactive shell is now zsh.
从 macOS Catalina 版开始,Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。
默认情况下,Mac 使用 zsh 或 bash 作为登录 Shell 和交互式 Shell 的命令行解释器:
- 从 macOS Catalina 版开始,zsh (Z shell) 是所有新建用户帐户的默认 Shell。
- bash 是...
「 JAVA 」 十二月 06, 2020
如何确定装载了哪个类
文章字数 4.3k 阅读约需 4 mins.
某些时候,我们可能希望知道 ClassLoader 里到底装载的是哪个 class,比如当两个 jar 包中存在 package 和 Class 名完全相同的两个类时。
在 java 命令的帮助信息中,有如下内容(部分):
$ java -help
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用...
查看全文
「 K8S 」 十一月 22, 2020
K8s ConfigMap
文章字数 8.2k 阅读约需 7 mins.
在 k8s 集群中部署第一个应用 中,完成了一个基本的 NGINX 服务的部署,但在真实环境中使用 NGINX 时,一般都需要定制其配置文件,使满足实际代理需求。K8s 提供了一个 ConfigMap 的概念,允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。
可以按字面方式,将 ConfigMap,理解为一个 Config 的 Map:
- Map 的 Key 为配置标识,可以是文件名等
- Map 的 Value 为配置内容,可以是字符串、文本内容等
一个 ConfigMap 中可...
查看全文