桥下の民
type: channel
link: https://wordplay.work/
description: 桥下の民
items: uv Python 包管理器
items: LangChain4J 概述 & 起步
items: Ansible 详细教程
items: Python 开发环境
items: Sony EV10 使用备忘
items: VSCode 开发 Shell 脚本
items: Ventoy 重装系统
items: PHP 项目开发
items: Windows 搭建 Apache 服务器
items: Prometheus 原理

uv Python 包管理器
type: item
date: 2025-08-21T01:21:00+00:00
description: 一、简介 一个 Rust 编写的现代化包管理器 —— uv，它比 pip 快 10 倍以上，还原生支持虚拟环境、锁文件、缓存优化等功能。 uv 是由 Astral 开发的 Python 包管理工具，目标是替代： pip（安装依赖） virtualenv/venv（创建虚拟环境） pip-tools（生成 requirements.txt） 二、安装 2.1、方法一：使用 PowerShell 一键安装（推荐） 步骤： 打开 PowerShell 可以在“开始菜单”中搜索 PowerShell 右键 → 以管理员身份运行（推荐） 执行以下命令安装 uv： powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/uv/releases/download/0.7.12/uv-installer.ps1 | iex" 这个脚本将自动完成以下操作： 下载预构建的 uv 可执行文件。 放入用户目录下（如：C:\Users\你的用户名\.cargo\bin）。 尝试自动添加环境变量。 验证是否安装成功： 关闭并重新打开命令行，输入： uv --version 2.2、方法二：手动下载安装包 访问下载地址：uv 0.7.12 Releases 找到你的平台对应版本，Windows 64 位一般下载这个：uv-x86_64-pc-windows-msvc.zip 解压后会得到一个 uv.exe 文件。 将 uv.exe 放入某个路径，并把该路径加入系统环境变量 Path，例如放入： 三、使用 创建虚拟环境并安装依赖，速度飞快： # 创建虚拟环境 uv venv # 启动虚拟环境 .\.venv\Scripts\activate # 安装 requests uv pip install requests

LangChain4J 概述 & 起步
type: item
date: 2025-08-19T06:49:00+00:00
description: 一、概述 1.1、概述 LangChain4J 即 LangChain For Java。 随着人工智能（AI）技术的迅猛发展，越来越多的开发者开始将目光投向AI应用的开发。然而，目前市场上大多数AI框架和工具如LangChain、PyTorch等主要支持Python，而Java开发者常常面临工具缺乏和学习门槛较高的问题。 LangChain4J 官方文档 1.2、作用 LLM 大模型应用技术架构： 大模型开发分类：超级个体+智能体、行业垂直大模型、基础通用大模型。 产品定位： 二、起步 2.1、前置约定 2.1.1、langchain4j 执行的各种大语言模型(LLMS) Comparison Table of all supported Language Models 2.1.2、模型约定 2.1.3、配置及关键点 所有调用均基于 OpenAI 协议标准或者 SrpingBoot 官方推荐整合规则，实现一致的接口设计与规范，确保多模型切换的便利性，提供高度可扩展的开发支持。 2.2、入门 2.2.1、接入按理百炼平台的通义模型 https://bailian.console.aliyun.com 2.2.2、大模型调用 1、获得 API-key 2、获得模型名 3、获得 baseUrl 开发地址

Ansible 详细教程
type: item
date: 2025-07-11T09:45:00+00:00
description: 一、简介 Ansible 是一个 IT 自动化工具，他能配置系统，部署软件，编排更复杂的 IT 任务，如连续部署或零停机时间滚动更新。 Ansible 用 Python 编写，Ansible 允许不需要在每个节点上安装自己的组件，可以在不止一个地方控制整个基础架构。 二、工作原理 Inventory：被管理节点的列表，资源池。 PlayBook：类似于 Shell 脚本，通过一系列命令执行自动化操作。 Module。 在 Ansible 管理体系中，存在 管理节点 和 被管理节点 两种角色。 被管理节点通常被成为资产。 在管理节点上，Ansible 将 AdHoc 或 PlayBook 转换为 python 脚本，并通过 SSH 传输到被管理节点上。 在被管理节点上依次执行 Python 脚本。 三、Ansible 安装 3.1、先决条件 3.2、安装 Ansible yum 方式： [root@localhost ~]# yum install epel-release [root@localhost ~]# yum install ansible pip 方式： [root@localhost ~]# yum install epel-release [root@localhost ~]# yum install python2-pip [root@localhost ~]# pip install ansible 查看 Ansible 版本： [root@localhost ~]# ansible --version ansible 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] 四、Ansible 简单部署 4.1、管理节点与被管理节点建立 SSH 信任关系 管理节点 (ansible) 中创建密钥对： [root@localhost ~]# ssh-keygen -t rsa 将本地的公钥传输到被管理节点： [root@localhost .ssh]# ssh-copy-id root@192.168.200.135 [root@localhost .ssh]# ssh-copy-id root@192.168.200.136 4.2、场景 4.2.1、检测所有被管理主机在线状态 [root@manager ~]# ansible all -i 192.168.19.135,192.168.19.136 -m ping 192.168.19.135 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" } 192.168.19.136 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" } -i : 参数后面是一个列表 (List) , 因此当为一个被管理节点时，我们后面一定要加一个英文逗号 (,) , 告知是 List。 4.2.2、确保 /tmp/a.conf 发布到所有被管理节点上 [root@manager ~]# touch /tmp/a.conf [root@manager ~]# ansible all -i 192.168.19.135,192.168.19.136 -m copy -a "src=/tmp/a.conf dest=/tmp/a.conf" 192.168.19.136 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "cha…

Python 开发环境
type: item
date: 2025-07-09T09:27:00+00:00
description: 一、下载 Python 安装包 官方下载地址：https://www.python.org/downloads/ Windows 用户：安装时一定要勾选 Add Python to PATH（否则后面会报错“python 不是命令”）。 务必勾选： Add Python 3.x to PATH Install launcher for all users（推荐） 验证安装： python --version pip--version 二、安装插件 在IDEA plugins 中搜索 Python. 三、更换 pip 默认源 3.1、使用命令行临时更换 运行以下命令来临时更换源： pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 3.2、配置永久更换 打开用户目录下的pip配置文件（如果文件不存在，则新建一个）。文件路径通常为： Windows: %APPDATA%\pip\pip.ini 例如： C:\Users\YourUsername\AppData\Roaming\pip\pip.ini Linux/macOS: ~/.pip/pip.conf 在文件中添加或修改以下内容来设置默认源： [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple 同样，可以将其替换为其他镜像地址。 保存文件并关闭。下次使用pip时，它将自动使用你设置的镜像源。 常用的国内镜像源： 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(备用) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 华中理工大学 http://pypi.hustunique.com/ 3.3、查看 Python 的包管理工具 pip 默认源 使用命令行： pip config list 如果使用的是 pip 版本 10.0.0 或更高版本，可以使用： pip config list --only-sources 这将列出所有配置的源，包括默认源。

Sony EV10 使用备忘
type: item
date: 2025-07-03T14:58:00+00:00
description: 一、按键布局 二、相机基础设置 2.1、相机过热关机 2.2、触摸跟踪对焦 2.3、拍摄提示音 2.4、ISO Auto 最大值 夜晚拍摄噪点多但是比较亮。 2.5、快门、光圈、ISO 光圈优先：决定你的背景虚化效果。F 值越小，背景越虚化。 夜晚的时候更大的光圈噪点也会更小，画面也会更纯净。 快门优先：影响你的运动模糊。 快门调整到帧率的两倍，会有一种电影感的模糊效果。 2.6、选择合适的对焦方式 对焦模式：单次AF，对焦区域：广域。大部分时候机器可以自动对焦。 对焦模式： 自动对焦 / 手动对焦 对焦区域： 相机往画面的哪一区域对焦。 2.7、4K or 1080P 2.8、记录设置 选择帧数 & 码率。P 帧数，M 码率。码率越大，体积越大，画质越好。帧数越大，需要更多的光线，画面也就越流畅。 2.9、设置防抖 2.10、使用延时与慢动作 延迟拍摄： 如果想拍摄 120 帧的慢动作： 将相机的P制转换成N制。 但是N制在灯光下容易出现频闪。可以切换成P制，或者把快门调整为1/50或者1/100，可以一定程度上改善。 2.11、如何提升拍摄效率 1）设置自定义按键 2）切换拍摄方案 设置好拍摄的配置，拍摄设置存储： 3）调出配置

VSCode 开发 Shell 脚本
type: item
date: 2025-06-26T09:19:00+00:00
description: 一、VSCode 插件 shellman：提供智能提示和自动补全功能。 shellcheck：提供语法检查的功能。 shell-format：提供代码格式化功能，快捷键：Alt+Shift+f。 Code Runner：提供代码运行功能。 Linux 上脚本首行要声明 bash 解释器，Windows 上也一样。不过，路径要更改为安装 Git 的路径，例如: E:\SOFTWARE\Git\bin/bash。 #!E:\SOFTWARE\Git\bin\bash # basic for command for test in Alabama Alaska Arizona do echo The next state is $test done 二、VSCode 实现 Shell 脚本调试 2.1、Windows 配置 SSH 2.1.1、通过「设置」安装 1、使用 Windows + I 快捷键打开「设置」，依次选择「系统」>「可选功能」。 2、点击「查看功能」，在搜索框中输入 OpenSSH 进行筛选。 3、根据需要勾选： OpenSSH 客户端：可以使用 ssh 命令连接到其他支持 SSH 的设备。 OpenSSH 服务器：允许其他设备通过 SSH 连接到你的电脑。 4、选择好后点击「下一步」，然后点击「安装」开始安装过程。 2.1.2、使用 PowerShell 安装 1、使用 Windows + R 快捷键打开「运行」对话框，输入 powershell，然后按 Ctrl + Shift + Enter 以管理员权限打开 PowerShell 窗口。 2、执行以下命令查看 OpenSSH 安装状态： 3、根据需要安装 OpenSSH 客户端和服务器组件： # 安装 OpenSSH 客户端 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 # 安装 OpenSSH 服务器 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 2.1.3、在 Windows 中配置 OpenSSH 服务器 1、当你在 Windows 上安装了 OpenSSH 服务器之后，需要进行一些配置才能接受连接： 2、使用 Windows + R 快捷键打开「运行」对话框，输入 powershell，然后按 Ctrl + Shift + Enter 以管理员权限打开 PowerShell。 Set-Service -Name sshd -StartupType 'Automatic' 3、设置 SSHD 服务自动启动： Start-Service sshd 4、检查 SSH 服务器是否在侦听 22 端口： netstat -an | findstr /i ":22" 5、确保 Windows Defender 防火墙允许 TCP 22 端口的入站连接： Get-NetFirewallRule -Name *OpenSSH-Server* | select Name, DisplayName, Description, Enabled 如规则丢失或被禁用，可以创建新规则： New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 6、可选）如果要修改配置，如设置用户访问权限，可以编辑 sshd_config 配置文件： Start-Process Notepad C:\Programdata\ssh\sshd_config 7、根据需要修改配置文件，保存后关闭记事本。 8、完成更改后，重启 SSHD 服务应用配置： Restart-Service sshd 按照这些步骤，你的 Windows 就能通过 SSH 协议接受连接了。 2.2、使用 VSCode 远程连接 linux 服务 安装 VSCode 插件：Remote - SSH & Bash Debug。 输入：ssh root@192.168.10.102 进行连接。 Remote - SSH 连接后生成 .config： Host 192.168.10.102 HostName 192.168.10.102 User root Bash Debug 配置 launch.json： { // Use IntelliSense to learn about possible attributes. // Hover to view d…

Ventoy 重装系统
type: item
date: 2025-06-23T01:13:00+00:00
description: 一、Ventoy Ventoy 是免费开源制作的工具，体积只有十几 M，纯净免安装，制作速度超快，支持 UEFI 启动和 Legacy 启动。U 盘可以同时存放多个系统镜像文件。 下载地址：https://github.com/ventoy/Ventoy/releases 二、重装系统 解压 ventoy-1.1.05-windows.zip 执行 Ventoy2Disk.exe。 注意：安装 Ventoy，U 盘会被格式化，请拿一个没有用过或者先把 U 盘中的数据拷贝出来。 制作 U 盘启动盘。 系统镜像下载：MSDN我告诉你 Windows 10 1909 64位 安装版 电脑启动快捷键：

PHP 项目开发
type: item
date: 2025-06-13T09:56:00+00:00
description: 一、PHP Cursor 配置 1、安装 PHP 扩展 PHP Intelephense PHP Debug PHP DocBlocker PHP Extension Pack PHP Server 2、配置 PHP 路径 { "window.commandCenter": 1, "java.configuration.maven.userSettings": "F:\\Maven\\apache-maven-3.5.2\\conf\\settings.xml", "maven.excludedFolders": [ "**/.*", "**/node_modules", "**/target", "**/bin", "**/archetype-resources" ], "pythonIndent.keepHangingBracketOnLine": true, "pythonIndent.trimLinesWithOnlyWhitespace": true, "pythonIndent.useTabOnHangingIndent": true, "git.ignoreMissingGitWarning": true, "php.validate.executablePath": "F:\\Development\\PHP\\php-7.4.29-Win32-vc15-x64\\php.exe" } 3、配置 PHP 调试 在项目根目录创建 .vscode/launch.json 文件： { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003, "pathMappings": { "/var/www/html": "${workspaceFolder}" } } ] } 4、配置 PHP 代码格式化 在设置中配置 PHP 格式化工具 推荐使用 PHP-CS-Fixer 或 Prettier 5、配置 PHP 代码检查 在设置中启用 PHP 代码检查 可以配置 PHP_CodeSniffer 或 PHPStan 6、配置 PHP 自动完成 确保 PHP Intelephense 扩展已启用 在设置中配置自动完成选项 7、配置 PHP 文档生成 安装 PHP DocBlocker 扩展 配置文档注释模板 8、配置 PHP 测试 安装 PHPUnit 扩展 配置测试运行器 9、配置 PHP 项目结构 创建标准的 PHP 项目结构： project/ ├── src/ │ └── YourNamespace/ ├── tests/ ├── vendor/ ├── composer.json └── .gitignore 10、配置 Composer 安装 Composer 在项目根目录创建 composer.json： { "name": "your-vendor/your-project", "description": "Your project description", "type": "project", "require": { "php": ">=7.4" }, "autoload": { "psr-4": { "YourNamespace\\": "src/" } } } 11、配置 PHP 错误报告 在 php.ini 中设置： error_reporting = E_ALL display_errors = On display_startup_errors = On log_errors = On error_log = "C:\php\logs\php_error.log" 12、配置 PHP 性能优化 在 php.ini 中设置： opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 13、配置 PHP 安全设置 在 php.ini 中设置： expose_php = Off session.cookie_httponly = 1 session.cookie_secure = 1 14、配置 PHP 开发工具 安装 Xdebug 用于调试 配置 Xdebug 设置： [xdebug] zend_extension=xdebug xdebug.m…

Windows 搭建 Apache 服务器
type: item
date: 2025-06-13T07:32:00+00:00
description: 一、下载 & 安装 下载 PHP： https://windows.php.net/download/ 下载 Apache 服务器 https://www.apachelounge.com/download/ 解压后： 只用到 Apache24 文件夹，将它拷贝到你的自定义目录，并修改配置。 如：D:\Apache24，用文本编辑器打开 Apache24\conf\httpd.conf 配置文件。 二、运行 方法一：运行 Apache24\bin\httpd.exe，会弹出一个窗口，关闭窗口则关闭服务。 方法二：使用 cmd 命令运行 Apache24\bin\httpd.exe（一定要是 cmd） 方法三：将 Apache 服务安装到本机，运行 Apache24\bin\ApacheMonitor.exe 控制打开 / 关闭服务。 使用 cmd 命令在 Apache24\bin 目录下执行：httpd.exe -k install。 运行 Apache24\bin\ApacheMonitor.exe。 双击任务栏右下角的图标，在弹出的窗口点击 Start/Stop 控制打开 / 关闭服务 将项目放置到 Apache24\htdocs 目录下，在浏览器输入 localhost / 项目名 / 访问，如：http://localhost/web-mobile/。

Prometheus 原理
type: item
date: 2025-05-23T09:31:00+00:00
description: 一、Prometheus 相关概念 1.1、内部存储机制 Prometheus 有着非常高效的时间序列数据存储方法，每个采样数据仅仅占用 3.5byte 左右空间，上百万条时间序列，30 秒间隔，保留 60 天，大概花了 200 多 G（引用官方 PPT）。 Prometheus 内部主要分为三大块： Retrieval 是负责定时去暴露的目标页面上去抓取采样指标数据。 Storage 是负责将采样数据写磁盘。 PromQL 是 Prometheus 提供的查询语言模块。 1.2、数据模型 Prometheus 存储的所有数据都是时间序列数据（Time Serie Data，简称时序数据）。时序数据是具有时间戳的数据流，该数据流属于某个度量指标（Metric）和该度量指标下的多个标签（Label）。 每个 Metric name 代表了一类的指标，他们可以携带不同的 Labels，每个 Metric name + Label 组合成代表了一条时间序列的数据。 在 Prometheus 的世界里面，所有的数值都是 64bit 的。每条时间序列里面记录的其实就是 64bit timestamp (时间戳) + 64bit value (采样值)。 Metric name（指标名称）：该名字应该具有语义，一般用于表示 metric 的功能，例如：http_requests_total, 表示 http 请求的总数。其中，metric 名字由 ASCII 字符，数字，下划线，以及冒号组成，且必须满足正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*。 Lables（标签）：使同一个时间序列有了不同维度的识别。例如 http_requests_total {method=“Get”} 表示所有 http 请求中的 Get 请求。当 method=“post” 时，则为新的一个 metric。标签中的键由 ASCII 字符，数字，以及下划线组成，且必须满足正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*。 timestamp (时间戳)：数据点的时间，表示数据记录的时间。 Sample Value（采样值）：实际的时间序列，每个序列包括一个 float64 的值和一个毫秒级的时间戳。 例如图上的数据： http_requests_total {status="200",method="GET"} http_requests_total {status="404",method="GET"} 根据上面的分析，时间序列的存储似乎可以设计成 key-value 存储的方式（基于 BigTable）。 进一步拆分，可以像下面这样子： 上图的第二条样式就是现在 Prometheus 内部的表现形式了，__name__ 是特定的 label 标签，代表了 metric name。 再回顾一下 Prometheus 的整体流程： 上面提到了 K-V 存储，当然是使用了 LevelDB 的引擎，它的特点是顺序读写性能非常高，这是非常符合时间序列的存储的。 1.3、Metric 类型 Prometheus 定义了 4 种不同的指标类型 (metric type)：Counter（计数器）、Gauge（仪表盘）、Histogram（直方图）、Summary（摘要）。 1.3.1、Counter（计数器） 一种累加的 metric，典型的应用如：请求的个数，结束的任务数， 出现的错误数等等。 【例如】查询 http_requests_total {method=“get”, job=“Prometheus”, handler=“query”} 返回 8，10 秒后，再次查询，则返回 14。 1.3.2、Gauge（仪表盘） 数据是一个瞬时值，如果当前内存用量，它随着时间变化忽高忽低。 【例如】go_goroutines {instance=“172.17.0.2”, job=“Prometheus”} 返回值 147，10 秒后返回 124。 1.3.3、Histogram（直方图） Histogram 取样观测的结果（一般是请求持续时间或响应大小）并在一个可配置的分布区间（bucket）内计算这些结果。其也提供所有观测结果的总和。 Histogram 有一个基本 metric 名称 ，在一次抓取中展现多个时间序列： 累加的 counter，代表观测区间：_bucket {le=“”} 所有观测值的总数：_sum 观测到的事件数量：_count 例如 Prometheus server 中 prometheus_local_storage_series_chunks_persisted, 表示 Prometheus 中每个时序需要存储的 …