🎯 引言站在2025年的尾巴上回望,这一年是技术广度与深度并进的一年。
从年初对Java生态的查漏补缺,到年中对家庭网络与Linux桌面生产力的折腾,再到年末,随着DeepSeek等大模型的爆发,我也投身于边缘计算与本地大模型部署的浪潮中。
📝 这篇年度总结,既是对过去一年技术足迹的记录,也是对未来方向的思考。
☕ 第一阶段:Java生态的深耕与重温
🗓️ 时间线:2025年1月 - 2月、10月🏷️ 关键词:Spring Boot、AOP、Optional、Java 17
作为一名Java开发者,基础永远是重中之重。2025年的前几个月,我将目光重新聚焦回了Java语言本身及其生态圈。
🔹 Java 17的新特性实践虽然LTS版本不断更新,但真正静下心来系统学习Java 17的语法特性是在今年10月。
Records(记录类) - 告别冗长的POJO模板代码
Sealed Classes(密封类) - 更精准的继承控制
Pattern Matching(模式匹配) - 简化类型判断与转换
这些特性的引入,不仅简化了代码,更改变了我们对数据建模的思考方式。
🔹 ...
[学习教程] Firefly ROC-RK3588S-PC大模型部署适用硬件: Firefly ROC-RK3588S-PC (16GB RAM, 128GB eMMC)
核心目标: RKLLama 是一个专为瑞芯微 (Rockchip) NPU (RK3588/RK3576) 优化的推理服务器,兼容 Ollama 和 OpenAI API。
本文档将指导您如何准备环境、下载/转换模型(包括 .rkllm 和 .rknn 格式),以及如何启动服务。
🚨 第一步:系统安装1. 准备工作
Firefly ROC-RK3588S-PC 开发板 文档地址: 点击进入
USB Type-C数据线
安装有Windows操作系统的电脑
Ubuntu22.04镜像文件 资料下载地址:点击进入
刷写工具AndroidTool.exe
2. 固件刷写下载的固件包中已经包含刷写工具和驱动,如果没有可在官网下载
驱动安装
接线、上电,插好电源线,使用microUSB线将开发板与电脑连接起来。
进入提前下载并解压的AndroidTool文件夹,打开AndroidTool.exe
...
Linux
未读RKLLama Docker 部署指南 (RK3588/RK3576)本文档旨在帮助您在 Rockchip RK3588/RK3576 平台上,通过 Docker 快速部署支持 NPU 加速的 LLM 服务。
1. 前置检查在部署之前,请确保宿主机的 NPU 驱动正常,因为 Docker 容器需要依赖宿主机的内核驱动。
# 检查 NPU 驱动版本cat /sys/kernel/debug/rknpu/version
要求: 驱动版本建议 >= 0.9.6。如果版本过低,建议升级开发板固件。
2. 部署配置 (Docker Compose)我们推荐使用 Docker Compose 进行管理,这样可以固化启动参数,避免每次输入长命令。
2.1 创建目录结构在您的宿主机上创建一个文件夹(例如 ~/rkllama_docker),结构如下:
~/rkllama_docker/├── docker-compose.yml # 服务配置文件├── deploy.sh ...
Build Your Own Redis with C/C++这本书是关于什么的?介绍如何使用 C 语言和 C++ 语言 从零开始编写 Redis 服务器,学习如何构建实际应用软件。
1. 核心理念:为什么要造轮子?
“我无法创造的东西,我就无法理解。” —— 理查德·费曼
在编程领域,“创造”与“理解”有着不同的层次。
浅层的创造:将各种现成的库(Library)拼凑在一起。
深层的创造:构建更底层的系统,触达更根本的原理。
我们的目标并非为了重新发明轮子,而是为了磨练基本功。掌握这些底层知识将使你在职业生涯中脱颖而出:你将能做出更明智的技术决策,具备更强的调试能力,并拥有更广阔的职业选择。
2. 这个项目能教会你什么?如果你能构建一个 Redis 服务器,你几乎就能构建任何软件。因为这个过程将深刻训练两项软件工程的基本技能:
🛠 技能一:网络编程 (Network Programming)编程的进阶是多机编程。当你掌握了 Redis 的构建原理,你就理解了 HTTP 服务器、RPC(远程过程调用)、数据库以及分布式系统背后的通用逻辑。
🧩 技能二:数据结构 (D ...
02. 套接字编程基础前提条件:具备基本的网络知识。
2.1 核心概念:从黑盒到代码计算机网络常被简化为线条连接的方框,但在实际编程中,我们需要处理更具体的细节。如果给你一个包含“发送”和“接收”两个方法的 API,你还需要了解什么?
1. TCP 字节流与协议 (The TCP Byte Stream)人们常误以为网络交互就是节点间互相扔“消息包”。但实际上,最常用的 TCP 协议并不生产“消息”,它生产的是**连续的字节流 (Continuous Stream of Bytes)**。
无边界:TCP 字节流内部没有天然的边界。
应用层协议:解释这个字节流是应用层协议的工作。你需要制定规则来切分数据流,将其还原为有意义的消息。
难点:在事件循环(Event Loop)中将字节流正确地拆分为消息,比解析静态文件要复杂得多。
2. 数据序列化 (Data Serialization)网络只认识 0 和 1。
**序列化 (Serialization)**:将高级对象(如字符串、结构体、列表)转换为字节的过程。
**反序列化 (Deserialization)**:将字节还原为对象 ...
03. TCP 服务器与客户端开发指南本章目标:熟悉 Socket API,编写一个基础的 TCP 回显服务器(Echo Server)和客户端。
⚠️ 注意:这里的代码虽然能跑,但仅仅是为了演示 API 的用法。真正的网络编程远不止调用 API 这么简单,完整的错误处理和架构设计将在后续章节展开。
3.1 先决条件 (Prerequisites)1. 熟悉 Linux 环境网络编程的原理通用,但 Windows/macOS 的系统调用细节差异很大。对于初学者,强烈推荐使用 Linux。
环境获取:VirtualBox 虚拟机、WSL (Windows Subsystem for Linux) 或云服务器 (VPS)。
必备技能:
文件操作:编辑、复制、移动、删除。
编译代码:使用 g++。不需要复杂的 Makefile。12g++ -Wall -Wextra -Og -g source.cpp -o program./program
2. 基本编程技能 (C/C++)虽然本项目主要使用 C 语言风格,但会用到少量的 C++ 特性(如 vector, s ...
java
未读从JDK8到JDK17JDK 17 不仅仅是一个普通的版本更新,它标志着 Java 平台的重大转变。作为继 JDK 8 和 JDK 11 之后的又一个长期支持(LTS)版本,JDK 17 集成了自 JDK 9 以来的所有创新特性,是 Java 现代化进程中的重要里程碑。
长期支持版本的意义作为 LTS 版本,JDK 17 将获得至少 8 年的支持期。这意味着企业可以安心地将其应用迁移到 JDK 17 上,享受新特性带来的便利,同时不必担心频繁升级的问题。对于那些仍在使用 JDK 8 的开发者来说,直接跳到 JDK 17 是一个明智的选择。
记录类(Record)传统 JavaBean 的痛点在传统 Java 开发中,创建一个简单的数据类需要编写大量模板代码:
1234567891011121314151617181920212223242526272829// 实体类public class Person { private final String name; private final int age; public Person(String name ...
写在前面:很多小伙伴搞不清楚“代理”、“甚至反向代理”、“内网穿透”这些概念。今天我们不讲枯燥的定义,用几张图和一个“传话筒”的故事,带你轻松看懂!
第一话:谁是“中间人”?(什么是代理)想象一下,你(客户端 Client)是一只住在局域网里的小白兔 🐰。你想去访问远方的城堡(服务器 Server)获取信息。
但是,有时候你不能直接飞到城堡去。可能因为路太远,也可能因为中间有一堵大墙。
这时候,你需要一个帮手——机器人 🤖(代理 Proxy)。它就像一个“传话筒”或者“中间人”。你不直接找城堡,而是把请求告诉机器人,机器人替你去跑腿,拿回东西后再转交给你。
这就叫 “代理”。
第二话:我想出去看看(什么是正向代理)有一天,小白兔🐰在公司里上班。公司的网络管理很严,周围围了一圈高高的红砖墙(防火墙),不让大家随便上外网摸鱼。
这时候,小白兔想去外面的世界(比如 Google 查资料)看看,怎么办?
聪明的网管在墙上开了一个小窗口,并在那里安排了一个特权机器人🤖。
小白兔(Client) 拿着写有网址的信(Request),递给 机器人(Proxy)。
机器人 检查一下信件 ...
麒麟 V10 桌面操作系统启用 Root 用户登录警告:直接使用 Root 用户登录存在安全风险,请谨慎操作。建议仅在必要时启用,并在完成操作后禁用或使用 sudo 命令进行管理。
一、允许使用 Root 用户登录在麒麟 V10 桌面操作系统安装完成后,系统默认会要求创建一个新用户进行登录。由于权限限制,普通用户在某些目录下可能无法进行修改或创建文件,执行一些系统管理命令时也需要频繁使用 sudo 并输入密码,较为繁琐。为了更方便地进行操作,可以直接启用 Root 用户登录。
二、修改 Root 账号密码首次启用 Root 用户登录前,需要先设置 Root 用户的密码。
打开终端: 在桌面上通过鼠标右键菜单,选择【打开终端】弹出命令行界面。
修改 Root 密码: 在终端中执行以下命令:
1sudo passwd root
输入密码:
系统会提示你输入当前用户的登录密码。
然后,你需要输入两次你希望设置的 Root 用户密码。
切换到 Root 用户(可选): 密码修改完成后,你可以在当前的终端中使用以下命令切换到 Root 用户身份,以便进行后续的文件修改:
1su ro ...
Nativefier 打包网页一、环境配置1. 安装 NVM for Windows 管理 nodejs使用nvm 管理node
仓库地址 下载win版直接安装 NVM for Windows 常用命令说明
命令
说明
示例
`nvm arch [32
64]`
显示当前 Node.js 进程的架构 (32 位或 64 位)。可指定 32 或 64 覆盖默认架构。
nvm debug
检查 NVM for Windows 进程是否存在已知问题。
nvm debug
nvm current
显示当前激活的 Node.js 版本。
nvm current
nvm install <version> [arch]
安装指定版本的 Node.js。<version> 可以是版本号、latest 或 lts。[arch] 可选,指定 32 或 64,all 同时安装。--insecure 绕过 SSL。
nvm install 18.0.0, nvm install latest, nvm install lts 64, n ...



