Archive


Category: 似水流年

  • HTTP 2 协议简介

    好的!下面我将详细讲解 HTTP/2 协议的核心内容、主要特性以及它为什么对现代网络通信(特别是 gRPC)非常重要。 什么是 HTTP/2? HTTP/2 是 HTTP/1.1 的下一代版本,发布于 2015 年,是由 IETF 开发的一个标准协议(RFC 7540)。它的目标是解决 HTTP/1.1 的性能瓶颈,尤其是在高延迟、高带宽环境下提高数据传输效率。 HTTP/2 的主要创新点包括: 二进制分帧:替代了 HTTP/1.1 的基于文本的格式。 多路复用:允许在同一连接上同时发送多个请求和响应。 头部压缩:减少了 HTTP 报文头的开销。 服务器推送:服务端可以在客户端请求之前主动推送资源。 HTTP/2 的核心特性 1. 二进制协议 HTTP/1.1 是基于纯文本的协议,这种格式虽然易读,但在传输效率上存在劣势。 HTTP/2 使用 二进制分帧 的方式,将所有数据封装为二进制帧,解析更高效。 帧(Frame) 是 HTTP/2 的最小通信单位,所有 HTTP 数据(如头部、数据体等)都会被分成帧并传输。 2. 多路复用(Multiplexing) 在 HTTP/1.1 中,每个请求需要单独的 TCP 连接,或者复用连接时必须按顺序完成,导致“队头阻塞”问题。 HTTP/2 允许在一个 TCP 连接上并行发送多个请求和响应: 每个请求和响应由一个或多个帧组成,这些帧可以交错(Interleave)传输。 […]

  • 用 Kotlin 的 DSL(领域特定语言)来定义构建脚本

    Kotlin DSL 是 Gradle 提供的一种基于 Kotlin 的构建脚本语言,与传统的 Groovy 脚本相比,Kotlin DSL 提供了更好的类型安全和智能提示支持。以下是用 Kotlin DSL 定义一个 Java 项目的构建脚本的详细指南。 项目结构 Gradle 使用 Kotlin DSL 的项目结构与 Groovy DSL 相似,区别在于构建脚本的文件名是 build.gradle.kts(而不是 build.gradle)。 目录结构: project/ ├── build.gradle.kts // Kotlin DSL 构建脚本 ├── settings.gradle.kts // 项目配置文件 ├── src/ │ ├── main/ │ │ ├── java/ // Java 源代码 │ └── test/ │ […]

  • Gradle 简介

    Gradle 是一种强大的构建工具,广泛应用于 Java、Kotlin、Groovy、Android 等生态系统。它以 声明性 和 灵活性 著称,使用基于 Groovy 或 Kotlin 的 DSL(领域特定语言)来定义构建脚本。 Gradle 可以用于以下任务: • 编译代码 • 运行测试 • 打包应用程序 • 管理依赖 • 部署应用 快速入门 安装 Gradle • 手动安装: 下载 Gradle:https://gradle.org/releases/ 解压后配置环境变量 GRADLE_HOME 和 PATH。 • 使用包管理器: • MacOS: brew install gradle • Ubuntu: sudo apt install gradle • Windows: 使用 choco install gradle […]

  • Kotlin 快速入门

    基础学习 1.1 安装开发环境 Kotlin 的开发环境非常灵活: • 推荐工具:IntelliJ IDEA 下载社区版即可:https://www.jetbrains.com/idea/download/ • 创建新项目时选择 Kotlin/JVM 模板即可开始。 • 在线编译器:Kotlin Playground 无需安装工具,直接访问 https://play.kotlinlang.org/ 在线运行 Kotlin 代码。 • Android 开发:Android Studio 如果目标是 Android 开发,可以使用 Android Studio,它对 Kotlin 有良好的支持。 1.2 学习语言基础 Kotlin 的语法直观、简洁,可以通过以下内容快速掌握语言基础: • Hello, World! fun main() { println("Hello, World!") } • 变量声明 val name: String = "Kotlin" // 不可变变量 var […]

  • 如何制作一面自己的魔镜 MagicMirror

    一、准备工作 1. 硬件准备 树莓派(推荐 Raspberry Pi 4 或更新版本) 需要配备 SD 卡(至少 8GB,推荐 16GB 或更大),用于安装系统。 显示器 普通的电脑显示器或平板显示器即可,大小根据需求选择。 双向镜子(Two-Way Mirror) 这种镜子既可以反射光线又允许屏幕后面的内容透过。可以从网上购买或者找本地玻璃店定制。 其他工具 HDMI 线:用于连接显示器与树莓派。 电源适配器:为树莓派供电。 框架:用于固定镜子和显示器(可以是木框、金属框等)。 二、安装和配置 MagicMirror 软件 1. 安装树莓派操作系统 下载 Raspberry Pi Imager。 将树莓派操作系统(Raspberry Pi OS)写入 SD 卡。 插入树莓派,接入电源、显示器、键盘鼠标,完成系统的初始配置(语言、WiFi 等)。 2. 安装 MagicMirror² 打开树莓派终端,运行以下命令安装 MagicMirror²: bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/install.sh)” 安装完成后,MagicMirror 的默认文件将位于 ~/MagicMirror 目录。 3. […]

  • Databricks and Superset

    Databricks Databricks 是一个基于云的统一数据分析平台,专为大规模数据处理、数据科学、机器学习和数据工程设计。它由 Apache Spark 的创始团队创建,旨在使大规模数据分析更加简单、高效和协作。 主要特点 多用途平台: 支持数据工程、数据科学和数据分析。 提供 ETL(提取、转换、加载)、数据探索、机器学习模型训练和部署等功能。 统一的数据管理: 支持处理结构化和非结构化数据。 与数据湖和数据仓库集成(例如 Delta Lake)。 高效的计算引擎: 使用优化的 Apache Spark 引擎以处理大规模数据。 提供自动化优化和动态分区管理。 协作功能: 提供笔记本(Notebook)环境,支持 Python、R、Scala 和 SQL。 支持团队协作和实时共享工作结果。 多云支持: 可部署在主流云平台上(如 AWS、Azure 和 Google Cloud)。 安全性和可扩展性: 提供数据加密、用户访问控制和审计功能。 应用场景 数据湖分析:用于数据清洗、转换和分析。 机器学习:训练和部署模型。 数据集成:将不同来源的数据集成到统一的平台。 BI 和报表支持:与 BI 工具集成(如 Tableau、Power BI 和 Superset)。 Apache Superset Apache Superset 是一个开源的商业智能(BI)平台,用于交互式数据可视化和仪表盘构建。它提供了一个用户友好的界面,允许用户从各种数据源中提取数据并创建图表和仪表盘。 主要特点 直观的界面: […]

  • how to use teleport bot to issue certificate and save it into aws secret manager?

    To use Teleport (a popular tool for secure access to infrastructure) to issue a certificate and save it into AWS Secrets Manager, follow these steps: Prerequisites: Teleport Setup: Ensure you have Teleport installed and configured. A Teleport bot must be running and properly authenticated to issue certificates. AWS CLI: Ensure the AWS CLI is installed […]

  • what’s the difference between AWS role permission policies and trust entities?

    In AWS Identity and Access Management (IAM), role permission policies and trust entities serve distinct but complementary purposes: 1. Permission Policies Definition: Permission policies define what actions an IAM role can perform on specific AWS resources. Scope: These policies are attached to the role itself and specify the permissions granted to anyone or anything assuming […]

  • Self-Signed Certificate

    自签名证书(Self-Signed Certificate)本质上并不依赖于外部的证书颁发机构(CA),因为它本身就是自己的 CA。换句话说,自签名证书的签发者(Issuer)和使用者(Subject)是同一个实体。 自签名证书的特点 Issuer 与 Subject 相同 自签名证书自己签署自己,所以在证书的 Issuer 和 Subject 字段中,都会看到相同的内容。 示例: Issuer: CN=MyRootCA, O=My Organization, C=US Subject: CN=MyRootCA, O=My Organization, C=US 没有外部验证 它的合法性完全依赖于你自己信任它,而不是通过第三方 CA 的认证。 使用时需要将自签名证书显式添加到“受信任证书”列表中。 用途 开发、测试环境。 小型闭环系统(如内网)。 为 CA 系统创建根证书(自签名证书可以成为其他证书的信任根)。 自签名证书的 CA 功能 一个自签名证书可以充当根 CA 证书,从而签发其他子证书(如服务器证书)。具体步骤如下: 生成自签名证书 使用 openssl 或类似工具生成密钥对。 自己使用私钥对证书内容进行签名,生成自签名证书。 签发其他证书 自签名证书作为“CA”,用它的私钥签署 CSR(证书签名请求),从而生成子证书。 如何生成自签名证书 以下以 OpenSSL 为例,生成一个自签名证书: 步骤 1:生成私钥 […]