Minecraft
未读说明Minecraft的官方源码始终未公开,其Java版客户端通过混淆技术对类名、方法名进行随机化处理(如a()、b()等无意义命名)。而通过Fabric生成的源码本质是:
反编译产物:基于Mojang发布的JAR包,使用CFR反编译器生成
社区映射:通过Yarn项目(社区维护的映射表)将混淆名称转为语义化命名(如method_1234→calculateBlockDamage)
受限结构:仅包含游戏运行时核心逻辑(如net.minecraft.block包),不包含渲染引擎等闭源模块
注意事项
生成的源码不可二次分发(违反Mojang EULA第2节)
生成的源码与Minecraft版本严格绑定(如1.20.1生成的类无法直接用于1.21开发)
禁止直接修改生成的源码(修改无效,需通过Mixin或API注入)
环境准备
安装JDK 17+ https://adoptium.net/temurin/releases/
IntelliJ IDEA https://www.jetbrains.com/idea/download/?section=windows
安装插件 Minec ...
模型参数deepseek-r1模型不同参数的特点,适用场景及硬件配置如下,根据自己实际情况选择对应版本。
DeepSeek 模型版本
参数量
特点
适用场景
推荐硬件配置
DeepSeek - R1 - 1.5B
1.5B
轻量级,参数量与规模小
短文本生成、基础问答等轻量级任务
4 核处理器、8G 内存,无需显卡
DeepSeek - R1 - 7B
7B
性能与硬件需求较平衡
文案撰写、表格处理、统计分析等中等复杂度任务
8 核处理器、16G 内存,Ryzen 7 或更高 CPU,RTX 3060(12GB)或更高显卡
DeepSeek - R1 - 8B
8B
性能略优于 7B 模型
代码生成、逻辑推理等高精度轻量级任务
8 核处理器、16G 内存,Ryzen 7 或更高 CPU,RTX 3060(12GB)或 4060 显卡
DeepSeek - R1 - 14B
14B
高性能,擅长复杂任务
长文本生成、数据分析等复杂任务
i9 - 13900K 或更高 CPU、32G 内存,RTX 4090(24GB)或 A5000 显卡
DeepSeek - ...
代码片段
未读依赖属性是 WPF 中的一种特殊属性,它扩展了传统的 .NET 属性,提供了更多功能,如数据绑定、动画、样式和资源支持。依赖属性的值不存储在对象本身,而是由 WPF 属性系统管理,这使得它们能够支持继承、默认值和值优先级等特性。
和普通属性区别
普通属性
依赖属性
存储方式
值直接存储在类的字段中
值由 WPF 属性系统管理,存储在全局的依赖属性系统中
功能支持
功能有限,不支持数据绑定、动画等高级特性
支持数据绑定、动画、样式、资源等高级功能
值优先级
只有一个值来源
支持多个值来源,并根据优先级决定最终值
注册依赖属性通过 DependencyProperty.Register 方法注册。以下是一个简单的例子:
123456789101112131415161718192021222324252627public class LineChart : Control{ public static readonly DependencyProperty ValuesProperty = DependencyProperty.Regi ...
在 .NET 中,IDisposable 接口是一个非常重要的接口,它主要用于管理非托管资源的释放。非托管资源是指那些不受 .NET 垃圾回收器(GC)管理的资源,例如文件句柄、数据库连接、网络套接字等。当你使用完这些资源后,需要及时释放它们以避免资源泄漏。IDisposable 接口提供了一种标准的方式来实现资源的释放逻辑。
实现接口1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/// <summary>/// YOLOv8 目标检测预测器,提供基于ONNX模型的物体检测功能/// </summary>public class YoloV8Predictor: IDisposable{ private readonly Yolo yolo; // yolo预测器 public YoloV8Predictor() { // 初始化预测器 } public voi ...
之前我的博客页面都是直接用AI生成的,风格各异,有些甚至看起来很奇怪,整体效果也不是很理想。后来,我看到了张洪Heo的博客封面图,非常吸引人,颜色搭配和设计都很有美感。但是,他的方法对我来说操作起来有一定的难度,不太容易上手。
于是,我在知乎上搜索了(如何制作文章封面图),找到了一些实用的方法。根据我自己的实际情况,对这些方法进行了适当的调整,尝试制作封面图。虽然我已经尽力去改进了,但效果还是比不上张洪Heo的作品那么完美。
制作工具
MasterGo
https://mastergo.com/
boardmix(之前用来画思维导图,开了1年会员,发现用来做图也很方便)
boardmix博思白板官网, AIGC在线生成, 多人协同思维导图, 流程图工具
图标资源
Windows 11 Color风格的标志符号和图标,格式有PNG、SVG
制作图标(可选)boardmix中,使用圆角矩形画出图标背景。
不展示边框
宽度256
高度256
圆角45
添加对应的图标素材,大小调整为210-240左右
选中区域,右键导出为png。
制作封面MasterGo中新建文 ...
问题背景在配置安知鱼主题的关于页面时,发现helloAbout的动效突然不起作用了。如下图所示
原因分析打开调试控制台,发现在about页面存在报错。
通过排查发现,在selfInfo中的selfInfoContentYear我填的不是纯数字导致的。
修改前1234567selfInfo: selfInfoTips1: 生日 selfInfoContentYear: 3 月 5 日 selfInfoTips2: 星座 selfInfoContent2: 双鱼座 selfInfoTips3: 职业 selfInfoContent3: 自动化工程师
修改后1234567selfInfo: selfInfoTips1: 出生 selfInfoContentYear: 1999 selfInfoTips2: 星座 selfInfoContent2: 双鱼座 selfInfoTips3: 职业 selfInfoContent3: 自动化工程师
恢复正常
问题描述通过git进行版本管理时,可以通过.gitignore文件来配置哪些文件或目录应该被忽略,不纳入版本控制系统的管理范围。但是有时在.gitignore文件中添加对应目录或文件后,在Sourcetree的未暂存文件中仍能看到。
可能原因 可能在之前已经将该目录或文件添加到了 Git 的暂存区或已经进行了版本控制,所以 .gitignore 的规则对这些文件暂时不起作用。
解决方法通过以下命令清除已经添加到暂存区的目录或文件。EEITest/app/build只是举例。
1git rm -r --cached EEITest/app/build
开发背景在自动化测试工作中,常常要对测试机进行通话方面的压力测试。此时,配合机有这样的需求:它需要自动接听来自测试机的电话,然后在通话持续一段时间后自动挂断。
特别要注意的是,配合机必须只对测试机拨打的通话进行自动接听,要将其他来电排除在外,不受其干扰,以此确保通话压力测试能够准确、有效地进行。
相关指令adb shell dumpsys telephony.registry:获取当前设备的通话状态信息
mCallState:来电状态。0:空闲状态;1:响铃;2:通话中;
mCallIncomingNumber:来电号码;
mDataConnectionState :数据流量连接状态(可以用来判断是否打开数据流量)
adb shell am start -a android.intent.action.CALL -d tel:xxx:拨打指定电话
adb shell input keyevent 5:接听电话
adb shell input keyevent 6:挂断电话
功能实现123456789101112131415161718192021def autoAnswer(dev ...
代码片段
未读开发背景在自动化测试和脚本化任务中,常需按步骤执行 adb shell 命令及处理结果。链式调用方式可将这些步骤用代码呈现,实现自动化设备管理和测试任务。例如自动化测试时,先通过 shell 命令安装应用,再检查安装结果,之后进行其他操作。使用 ADBShell 类的链式调用能将操作相连,利用 Python 脚本实现自动化流程控制。
功能实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152class ADBShell: def __init__(self, device: str): self.shell = None # shell 进程对象 self.device = device self.stdout_adb = "" self.stderr_adb = "" self.start_shell() def start ...
代码片段
未读开发背景在 Windows 系统应用开发与部署中,环境变量 PATH 对查找可执行文件和库文件很重要。手动添加新路径到 PATH 繁琐易错,在多用户环境下还会影响系统稳定性。
因此,开发了一个自动化函数用于向用户级 PATH 添加新路径。因修改需管理员权限,该函数会检查权限,同时避免重复添加,以提高效率和系统可维护性、可扩展性,方便软件安装更新等操作。
功能实现需要管理员权限
C#实现12345678910111213141516171819private bool AddUserEnvironmentVariable(string targetPath){ WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new(identity); if(!principal.IsInRole(WindowsBuiltInRole.Administrator)) // 必须要有管理员权限 return false; // 获 ...