使用 Navidrome 搭建个人音乐库并配合音流客户端实现音乐自由
使用 Navidrome 搭建个人音乐库并配合音流客户端随时随地听音乐前言本人是一个音乐爱好者,喜欢收集和听各种类型的音乐。但是目前市面上的音乐平台大多都是很多广告,界面花里胡哨,且会时常有版权限制。在网上寻找解决方案时,我发现了 Navidrome 这个开源的音乐服务器项目。它可以帮助我在本地或服务器上搭建一个个人音乐库,并通过音流(Substreamer)来配置客户端,实现音乐自由。 一、Navidrome 简介Navidrome 是一个用 Go 语言开发的现代化音乐服务器,支持多平台部署(Windows、macOS、Linux、Docker),界面美观,资源占用极低,支持多用户、自动扫描音乐库、歌词、封面、播放列表等功能。 GitHub 地址:https://github.com/navidrome/navidrome 二、Docker Compose 部署 Navidrome1. 编写 docker-compose.yml创建 docker-compose.yml 文件: 1234567891011version: "3.8"services: ...
使用 Cloudflare R2 免费图床功能详解
使用 Cloudflare R2 免费图床功能详解Cloudflare R2 是 Cloudflare 推出的对象存储服务,兼容 S3 协议,支持免费额度,非常适合用作个人图床。本文将详细介绍 R2 图床的注册、配置、上传与外链全过程。 一、R2 简介与优势 免费额度:每月 10GB 存储和 1,000,000 次请求免费 全球 CDN 加速,访问速度快 兼容 S3 协议,支持主流上传工具 支持自定义域名、无出站流量费 二、注册与开通 R2 注册 Cloudflare 账号 登录 Cloudflare 控制台,左侧菜单选择“R2” 点击“创建存储桶(Bucket)”,填写名称(如 my-images) 创建后可在“存储桶”列表中看到 三、获取 API 密钥 控制台右上角头像 > “My Profile” > “API Tokens” 选择“Create Token”,可用“Edit Cloudflare R2 Storage Bucket”模板 生成后保存 Access Key ID 和 Secret Access Key 四、上传图片到 R2方式一:使用...
使用 Python、Ollama、LangChain 和 RAG 本地部署智能 Agent
使用 Python、Ollama、LangChain 和 RAG 本地部署智能 Agent前言随着大模型和 RAG(检索增强生成)技术的发展,个人和企业可以在本地快速搭建智能 Agent,实现问答、知识检索等功能。本文以 macOS 环境为例,介绍如何结合 Python、Ollama、LangChain 和 RAG 技术,完成本地智能 Agent 的搭建。 一、环境准备 安装 Python 3.8+ 安装 Ollama 访问 Ollama 官网 下载并安装适用于 macOS 的 Ollama。 启动 Ollama 服务:1ollama serve 安装依赖包1pip install langchain langchain-ollama langchain-chroma 依赖包可根据实际需求调整。 二、下载并运行本地大模型以 deepseek-r1:8b 和 mxbai-embed-large 为例: 12ollama pull deepseek-r1:8bollama pull...
使用 HuggingFace + LangChain 本地调用 DeepSeek
使用 HuggingFace + LangChain 本地调用 DeepSeek前言DeepSeek 是近年来备受关注的大语言模型之一。通过 HuggingFace Transformers 和 LangChain,可以在本地高效调用 DeepSeek,进行自然语言处理、问答等任务。本文以 macOS 环境为例,介绍如何用 Python 本地部署和调用 DeepSeek。 一、环境准备 确保已安装 Python 3.8+ 注册 HuggingFace 账号: 访问 HuggingFace 官网 注册账号。 获取 API Token,进入 Settings > Access Tokens 创建新 Token。在终端执行以下命令登录 HuggingFace: 1huggingface-cli login 根据提示输入 API Token。 建议使用虚拟环境: 12python3 -m venv venvsource venv/bin/activate 安装依赖包: 1pip install torch transformers langchain 安装...
React 面试遇到的问题
React 面试常见问题与解析前言最近也是陆陆续续在开始面试找工作, 因为前端相对来在公司连续做的时间比较长, 所以最终还是选择了 React 相关的岗位。面试中遇到了一些 React 相关的问题,下面将这些问题进行总结和解析。 一、React 基础原理1. React 的核心思想是什么?React 采用声明式 UI 和组件化开发思想,通过虚拟 DOM 提高性能,数据驱动视图更新。 2. 虚拟 DOM 的原理及优缺点? 原理:用 JS 对象模拟 DOM 结构,diff 算法高效比对新旧虚拟 DOM,最小化真实 DOM 操作。 优点:性能提升、跨平台。 缺点:极端场景下 diff 也有性能瓶颈。 3. setState 是同步还是异步?setState 在合成事件和生命周期中是异步的,在原生事件和 setTimeout 中是同步的。 二、React 进阶用法1. 组件通信方式有哪些? props 父子传递 context 跨层传递 redux/mobx 等全局状态 ref 获取子组件实例 2. 受控组件与非受控组件区别? 受控组件:表单数据由 state...
VScode 保存时 Prettier 卡顿很久,保存速度变慢的解决办法
VScode 保存时 Prettier 卡顿很久,保存速度变慢的解决办法引言最近在前端开发中,遇到一个极其影响效率的问题:每次保存代码时,Prettier 都会卡住 10 多秒甚至更久,严重拖慢开发节奏。网上查阅了大量资料,尝试了各种方法,始终未能彻底解决。 问题表现 保存代码时,状态栏显示“正在通过 Prettier 格式化”,但长时间无响应。 保存一次代码需要等待十几秒甚至更久。 关闭 Prettier 插件后恢复正常,但无法享受自动格式化。 解决方案经过多次排查和尝试,最终通过以下两个方法彻底解决了卡顿问题: 方案一:删除 editor.codeActionsOnSave 配置 打开 VSCode 设置(settings.json)。 查找并删除如下配置: 123"editor.codeActionsOnSave": { // ...可能的内容} 保存并重启 VSCode。 该配置会在保存时触发额外的代码操作,与 Prettier 可能存在冲突或性能问题,删除后保存速度明显提升。 方案二:替换 Auto import...
在 Docker 中安装 OpenWrt 作为旁路由
在 Docker 中安装 OpenWrt(macvlan 旁路由模式)详细教程OpenWrt 是一款强大的嵌入式 Linux 路由器系统。通过 Docker,可以在 PC、服务器等环境下快速体验和测试 OpenWrt,尤其适合旁路由科学上网场景。以下为详细步骤: 一、创建 macvlan 网络假设物理网卡为 eth0,可用如下命令创建 macvlan 网络(请根据实际网卡名调整): 12345docker network create -d macvlan \ --subnet=192.168.1.0/24 \ --gateway=192.168.1.1 \ -o parent=eth0 \ macnet 二、设置网卡为混杂模式1sudo ip link set eth0 promisc on 三、拉取并启动 OpenWrt Docker 镜像12345docker pull sulinggg/openwrt:x86_64docker run -d --name openwrt --restart unless-stopped \ --network macnet...
macOS 安装 Docker 及镜像加速和常用命令
macOS 安装 Docker 及镜像加速和常用命令前言Docker 是现代开发和运维中不可或缺的容器化工具。本文将介绍如何在 macOS 上安装 Docker Desktop,配置国内镜像加速源,并列举常用 Docker 命令,帮助你高效上手。 一、安装 Docker Desktop for Mac 访问 Docker 官网 下载适用于 macOS 的 Docker Desktop 安装包。 双击下载的 .dmg 文件,按照提示将 Docker 拖入 Applications 文件夹。 启动 Docker Desktop,首次启动可能需要输入管理员密码。 启动后,菜单栏会出现 Docker 图标,等待其状态变为 Docker Desktop is running 即可。 注意:Apple Silicon (M1/M2/M3) 芯片和 Intel 芯片需下载对应版本。 二、配置国内镜像加速源由于国内访问 Docker Hub 较慢,建议配置镜像加速器: 点击菜单栏 Docker 图标,选择 Preferences(偏好设置)。 进入...
GitHub Copilot beta内测
2022 年 11 月 GitHub Copilot 内测回忆与展望2022 年 11 月,GitHub Copilot 仍处于内测阶段。作为一名开发者,能够参与这场 AI 编程革命的早期体验,是一次难忘的经历。本文将回顾当时的内测参与方式、Copilot 的主要功能,并站在当时的视角,畅想 AI 编程助手的未来。 一、Copilot 内测参与方式在 2022 年 11 月,GitHub Copilot 还未全面开放,想要体验 Copilot 需要: 申请内测资格: 访问 GitHub Copilot 官网,填写内测申请表单,提交 GitHub 账号、使用场景等信息。 等待官方邮件通知,部分开发者会收到内测邀请。 安装 VSCode 插件: 获得内测资格后,在 VSCode 插件市场搜索“GitHub Copilot”,安装官方插件。 登录 GitHub 账号,激活 Copilot。 体验与反馈: 参与内测的用户被鼓励在 GitHub Discussions、官方问卷等渠道反馈体验和建议。 二、2022 年 Copilot...
Spring Boot 实现图片链接转 Base64
Spring Boot 实现图片链接转 Base64 并前端显示详解在实际开发中,前端有时需要直接以 Base64 格式显示图片,避免跨域或图片失效问题。本文介绍如何在 Java Spring Boot 后端通过图片链接获取图片并转为 Base64 字符串,供前端直接使用。 一、应用场景 前端 img 标签直接显示 Base64 图片,减少请求 解决图片跨域、鉴权等问题 富文本、头像上传预览等 二、实现思路 后端接收图片链接 后端下载图片为字节流 将字节流转为 Base64 字符串 返回 Base64 字符串给前端 前端用 data:image/*;base64, 方式显示 三、Spring Boot 后端实现1. 添加依赖Spring Boot 项目无需额外依赖,JDK 自带 Base64 工具类。 2. 编写工具方法12345678910111213import java.io.InputStream;import java.net.URL;import java.util.Base64;public class ImageUtil { public...