在 Mac 上为 Zsh 环境增效与美化

我最近重装了 macOS,并花时间重新配置了 shell 环境。不得不承认,macOS 默认的 Terminal 看起来有些过时,缺少一些重要的生产力特性。 前提条件 Homebrew Homebrew 是 macOS 上非常流行的包管理器,专注于终端环境。对于普通用户 App Store 可能够用,但对于做工程工作的用户来说,Homebrew 是必备。 安装 Homebrew: 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Zsh Zsh(Z shell)自 macOS Catalina 起已取代 Bash 成为默认 shell。 macOS 自带 zsh,但你可以通过 Homebrew 更新它: 1 brew install zsh iTerm2 终端 根据 iTerm2 的介绍: iTerm2 是 Terminal 的替代品,也是 iTerm 的继任者。它适用于 macOS 10.14 或更新版本的 Mac。iTerm2 将终端带入现代时代,提供许多你意想不到但非常实用的功能。 它带来了许多方便的现代化功能。一些我喜欢的有: 分屏(Split panes) 热键窗口(Hotkey window) 24 位颜色与 256 色模式 全局搜索 密码管理器 使用 Homebrew 安装 iTerm2: ...

November 9, 2025 · 1 min · 130 words · Justin Hu

Terraform 和基础设施即代码

基础设施即代码 配置云资源的挑战 大规模手动配置基础设施既缓慢又繁琐。通过点击式 GUI 配置基础设施容易出错、效率低下且无法扩展。云是为自动化而构建的,但为每项服务和每个用例编写自定义脚本对于开发团队来说既耗时又昂贵。 解决方案 基础设施即代码 (IaC) 可在任何云上自动配置基础设施。多云配置应使用声明式基础设施即代码实现自动化。应该有一种简单易学的配置语言,允许人们定义基础设施资源,以便可以在所有环境中以一致的工作流对基础设施进行编码、共享、版本控制和执行。 Terraform 基础设施即代码有几十种不同的工具,HashiCorp 开发的 Terraform 是目前业内最受欢迎的 IaC 工具之一。 另外,OpenTofu 是从 terraform 1.5.6 分叉的开源工具,提供类似的功能和界面。 Terraform 快速入门 Terraform 的工作原理 Terraform 依赖不同的服务提供商来实际管理不同平台上的基础设施资源。服务提供商实际上是一个使用上游平台 API 来配置资源的模块。 使用 Terraform 部署基础设施有 5 个步骤: 1.范围 - 确定项目的基础设施 2.作者 - 编写基础设施的配置 3.初始化 - 安装 Terraform 管理基础设施所需的插件 4.计划 - 预览 Terraform 将进行的更改以匹配您的配置 5.应用 - 进行计划的更改 安装 Terraform CLI 使用 Homebrew 在 Mac 上安装 Terraform 1 2 brew tap hashicorp/tap brew install hashicorp/tap/terraform 验证安装 ...

October 19, 2024 · 8 min · 1571 words · Justin Hu

GitHub Actions以及它为何比Jenkins更受欢迎并成为默认CI/CD工具

本站的所有文章都默认为英文,中文版本由Google Translate 翻译。 由于时间限制,并非所有文章都有中文版本。。 什么是 Git Actions 根据 Github 的说法: GitHub Actions 是一个持续集成和持续交付 (CI/CD) 平台,可让您自动化构建、测试和部署管道。您可以创建工作流,在将更改推送到存储库时运行测试,或者将合并的拉取请求部署到生产环境中。如果您有 CI/CD 工具使用经验,可能使用过 Genkins,那么您可以将 Github Actions 视为一种类似但更好的工具,可以实现相同的目的。 类似地,GitHub Actions 可用于: 构建和测试 部署 发布包 管理 github(问题、标签)等等 一个简单的例子 1. 创建 Github Action 工作流 YAML 文件 在 GitHub 上的存储库中,在 .github/workflows 目录中创建一个名为 github-actions-hello-world.yml 的工作流文件。 2. 复制并粘贴以下 Hello World YAML 内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 name: GitHub Actions Hello World run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 on: [push] jobs: Explore-GitHub-Actions: runs-on: ubuntu-latest steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." - name: Check out repository code uses: actions/checkout@v4 - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." - run: echo "🖥️ The workflow is now ready to test your code on the runner." - name: List files in the repository run: | ls ${{ github.workspace }} - run: echo "🍏 This job's status is ${{ job.status }}." 将 YAML 文件提交到 Repo 将工作流文件提交到您的分支 ...

October 19, 2024 · 2 min · 249 words · Justin Hu

如何创建自签名SSL证书

SSL证书 在当今网络犯罪变得越来越普遍的数字环境中,保护您的网站或应用程序变得越来越重要。 实现安全性的一种常见方法是通过加密。 对称和非对称加密在密码学领域已得到深入研究,并广泛应用于业界以帮助保护数字系统。 SSL 证书建立在非对称加密之上,通常用于通过确保客户端和 Web 服务器之间传输的数据经过加密来保护网站安全,从而保证数据的私密性和安全性。 企业、组织和开发人员通常从充当互联网信任源的公共CA(证书颁发机构)获取SSL证书。 在某些情况下,例如测试、学习、开发或内部目的,可能需要创建自签名 SSL 证书。 本文作为如何使用OpenSSL生成自签名SSL证书的简单指南。 分步指南 1: 安装OpenSSL 互联网上有大量有关如何安装 OpenSSL 的信息。 对于基于 Ubuntu 或 Debian 的系统: 1 sudo apt install openssl 对于基于 CentOS、Fedora 或 RHEL 的系统: 1 sudo yum install openssl 对于MacOS 1 brew install openssl 2: 生成私钥 1 openssl genrsa -out test.key 2048 运行命令生成 2048 位 RSA 私钥(将 test.key 替换为您的文件名): 1 2 3 4 Generating RSA private key, 2048 bit long modulus (2 primes) ..............+++++ .............+++++ e is 65537 (0x010001) 3: 创建证书签名请求 证书签名请求 (CSR) 包含有关您的应用程序和组织的所有信息。 然后可以使用 CSR 来生成 SSL 证书。 ...

January 28, 2024 · 2 min · 337 words · Justin Hu

FastAPI 初探

What is FastAPI? According to its official website, FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints. Hello World with FastAPI Installation Requirements Python3.8+ Install FastAPI 1 pip install fastapi Install ASGI Server 1 pip install "uvicorn[standard]" Define a FastAPI app Create a file main.py with: 1 2 3 4 5 from typing import Union from fastapi import FastAPI app = FastAPI() Create API Endpoints In main.py add the following 2 endpoints implementation ...

December 1, 2023 · 2 min · 415 words · Justin Hu

Apache Kafka以及与RabbitMQ的比较

本站的所有文章都默认为英文,中文版本由Google Translate 翻译。 由于时间限制,并非所有文章都有中文版本。 Kafka介绍 Apache Kafka 现在在我的工作中大量使用。 因此,我认为写一篇关于它的帖子会很有用和有帮助。 Kafka 是一个事件流平台。 Apache Kafka 定义事件流如下: 从技术上讲,事件流是以事件流的形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的实践; 持久存储这些事件流以供以后检索; 实时和回顾性地操纵、处理和响应事件流; 并根据需要将事件流路由到不同的目标 技术。 因此,事件流可确保数据的连续流动和解释,从而使正确的信息在正确的时间出现在正确的位置。 Kafka安装和Hello World 关于如何在其他系统上安装和运行Kafka,请参考官方文档: https://kafka.apache.org/quickstart 我正在使用 Mac。 Homebrew 是一个非常好的工具,可以在 Mac 上安装和管理包,与 Ubuntu 上的 apt-get 非常相似。 MacOS 上的 Appstore 对于普通用户来说安装、升级、更新应用已经足够了,但是对于开发者来说绝对不够用。 老实说,我认为 Apple 应该收购 Homebrew 并将其集成到 MacOS 中。 安装Java 1 2 brew install java java --version 安装Kafka 1 brew install kafka 启动ZooKeeper 打开一个新的终端,运行命令启动 ZooKeeper,因为 Kafka 利用 ZooKeeper 来管理集群。 1 zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties 启动Kafka 注意: 编辑/usr/local/etc/kafka/server.properties,将listeners改为listeners=PLAINTEXT://localhost:9092 ...

December 23, 2022 · 2 min · 258 words · Justin Hu

图灵测试与人的判断

本站的所有文章都默认为英文,中文版本由Google Translate 翻译。 由于时间限制,并非所有文章都有中文版本。 自从阿兰.图灵于 1950 年引入测试机器是否智能以来,图灵测试一直是人工智能哲学中一个重要且有影响力的概念。 图灵测试本身很简单,但图灵背后的推理过程却很深刻。 思考与行动 机器能思考吗?如果计算机可以推理,我们怎么知道呢? 树木有智慧吗?他们也能思考吗?我们怎么知道? 石头呢? 嗯,答案是我们不知道。按照常识,树木不聪明,也不会思考。如果树木和石头真的可以思考,但频率是人类无法理解的,时间尺度是人类无法理解的,那会怎样? 图灵以不同的方式处理这个问题,因为思维很难定义和衡量。与其询问机器是否可以思考,不如测量机器的行为更易于管理和现实。如果一个设备的行为和行为是智能的,那么它就是智能的。 人性化与理性化 既然我们已经将机器的行为和行为确定为衡量智能的标准,那么自然会出现一个后续问题:什么是智能?当我们说机器是智能的时,我们指的是什么? 智能本身是一个通用词,没有严格的定义。根据 Merriam-Webster,Intelligence 具有以下含义: 学习或理解或处理新情况或困难情况的能力 应用知识来操纵一个人的环境或抽象思考的能力,以客观标准(如测试)衡量 我们有一般的智力。但是,当我们说人工智能时,我们在说什么? 快速反应就像人类一样。如果一台机器表现得像人类,那么我们就说它是智能的。 与思考一样,人的行为也会产生同样的歧义。我们如何定义地球上数十亿人的人道行为?每个人的行为都不同,这取决于他们的文化、社会和经济状况。 鉴于人类行为难以定义,用理性行为代替它是合理的,这通常意味着根据给定的输入做出最佳决策,这是数学中定义明确和研究的领域。 飞机与鸟 现代人习惯了飞机和鸟类。 一个有趣的问题是“为什么飞机看起来与鸟类不同?”。 我们为什么不通过模仿鸟类的外观来设计飞机呢? 目标是设计能飞的机器而不是看起来像鸟的机器?鸟类的外表只是表面现象,而空气动力学才是根本。 结束语 图灵测试的设计和飞机的设计有一些基本真理: 以行为而不是思想来判断一个物体或一个人。 谨言慎行。避免天真。 避免肤浅,寻求根本真理。

November 18, 2022 · 1 min · 35 words · Justin Hu