最普通的 CRUDS 能10分钟快速搞定吗
February 4, 2025 by walter
1. 项目结构 我们将项目分为两个部分: 后端:Spring Boot + Spring Data JPA + MySQL 前端:Vue.js 3 项目结构如下: task-manager/ ├── backend/ # Spring Boot 项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ ├── controller/ │ │ │ │ […] →Read more
Use OIDC and keycloak to protect your API
January 31, 2025 by walter
1. Setup Keycloak Before you start coding, make sure you have a running Keycloak instance: Run Keycloak using Docker docker run -d –name keycloak -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak:latest start-dev Create a Realm and Client Open Keycloak at http://localhost:8080/ Login with admin/admin Create a new Realm (e.g., myrealm) Under the Realm, […] →Read more
teleport identity file
January 26, 2025 by walter
When you run the command: tsh login –user=api-user –out=identity-file the identity file is generated by Teleport (tsh), and it contains the user’s credentials used for authentication in Teleport’s environment. The content of this file is not just a simple X.509 certificate, but a set of credentials, which includes several components necessary for mTLS (mutual TLS) […] →Read more
teleport 中 tbot 与 teleport cluster 的安全通信
January 26, 2025 by walter
1. 证书签名过程概述 当 tbot 请求证书时,它与 Teleport 集群的 Auth Service 交互: 私钥生成: tbot 本地生成自己的私钥和公钥(通常使用 Elliptic Curve 或 RSA 算法)。 这对密钥仅存储在 tbot 的环境中,私钥不会发送到 Teleport 集群。 CSR(Certificate Signing Request)生成: tbot 使用生成的公钥创建一个 CSR(证书签名请求),并将其发送到 Teleport 集群的 Auth Service。 CSR 包含: 公钥 证书用途(如 SSH、Kubernetes、数据库等) tbot 的身份信息(例如角色、用户名等) CA 签名: Teleport 集群的 Auth Service 验证 tbot 的身份(基于 token 或已有证书)。 一旦认证通过,Auth Service 使用 Teleport […] →Read more
HTTP 2 协议简介
January 26, 2025 by walter
好的!下面我将详细讲解 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)传输。 […] →Read more
用 Kotlin 的 DSL(领域特定语言)来定义构建脚本
January 26, 2025 by walter
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/ │ […] →Read more
Gradle 简介
January 26, 2025 by walter
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 […] →Read more
Kotlin 快速入门
January 26, 2025 by walter
基础学习 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 […] →Read more
如何制作一面自己的魔镜 MagicMirror
January 25, 2025 by walter
一、准备工作 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. […] →Read more
Databricks and Superset
January 22, 2025 by walter
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)平台,用于交互式数据可视化和仪表盘构建。它提供了一个用户友好的界面,允许用户从各种数据源中提取数据并创建图表和仪表盘。 主要特点 直观的界面: […] →Read more