- 博客(36)
- 收藏
- 关注
原创 在 Zellij 中用 Neovim 优雅地解决剪贴板同步问题
摘要:文章探讨了Zellij终端复用器与Neovim编辑器之间的剪贴板同步问题,并提供了Lua脚本解决方案。通过禁用自动OSC 52检测并强制指定剪贴板提供程序,该方案实现了稳定的跨应用复制粘贴功能。配置代码包含环境变量判断、OSC协议设置和剪贴板寄存器指定,确保仅在Zellij环境中生效。这一优化显著提升了开发者在使用Zellij+Neovim组合时的工作效率。
2025-09-16 12:03:01
134
原创 Tmux 进阶:如何让你的前缀键(Prefix Key)拥有视觉反馈
《让Tmux Prefix键不再“隐形”:添加等待指示器指南》 Tmux的prefix键(默认Ctrl-b)激活后缺乏视觉反馈,容易导致误操作。本文介绍如何通过修改.tmux.conf,利用#{?client_prefix,...}条件表达式为prefix状态添加醒目的指示器。提供三种实现方案:简单文本(如[PREFIX])、彩色区块或Emoji符号切换,并说明如何调整escape-time优化响应。配置后重新加载即可生效,显著提升操作确定性,尤其适合频繁使用tmux-Vim工作流的开发者。
2025-09-08 08:12:06
686
原创 使用 Frida 运行时检测 Android 应用的真实权限状态 (App Ops)
Frida 脚本检测 Android 应用真实权限状态 摘要:本文介绍了一种使用 Frida 结合 Android 的 AppOpsManager 来实时检测应用运行时真实权限状态的方法。通过分析 App Ops 机制与标准权限模型的区别,提出静态分析权限声明的局限性。文章详细解析了一个 Frida 脚本实现,该脚本可检测目标应用是否真正获得敏感操作权限(如录音、位置访问等),并解释了关键的 checkOp() 方法返回值的含义。脚本通过获取当前应用上下文,检查预定义权限列表的实际状态,将结果转换为可读格式
2025-08-24 22:08:30
527
原创 Android 源码编译踩坑记:dex2oatd mmap 失败与 low 4GB 地址空间
Android源码编译低地址空间分配失败问题分析 本文分析了在Android源码编译过程中遇到的dex2oatd阶段崩溃问题。尽管物理内存充足,构建仍因low_4gb地址空间分配失败而报错"Can't allocate memory"。关键发现是: 问题本质是32位目标编译时,ART需要低4GB连续地址空间,但ASLR导致分配失败 使用gdb调试时问题消失,因为gdb环境改变了地址空间布局 最佳解决方案是使用setarch x86_64 -R临时关闭ASLR运行构建命令 其他可选方案包括
2025-08-14 13:39:52
538
原创 使用 ast-grep 精准匹配指定类的方法调用(以 Java 为例)
这篇文章介绍了如何使用ast-grep工具精准匹配Java中特定类的方法调用。通过YAML规则配置,结合pattern、inside和has等条件,可以只匹配目标类(如Class_A)实例调用的方法(如add()),而排除其他类的同名方法调用。文章提供了具体规则示例和匹配效果说明,适用于代码重构、安全审计等需要精确匹配语法结构的场景,并推荐了进一步学习的官方文档资源。
2025-08-08 22:38:37
443
原创 Python 日期时间格式化与解析的瑞士军刀:`strftime()` 与 `strptime()`
strftime()和strptime()是 Pythondatetime模块中一对互补且不可或缺的方法。strftime()负责将datetime对象格式化为人类可读的字符串,让你能够自由定制时间的显示方式。strptime()负责将时间字符串解析回datetime对象,是处理外部时间数据的基础。掌握这两个方法以及它们所使用的格式代码,你就能在 Python 中自如地进行日期和时间的格式化与解析,让你的应用程序在处理时间数据时更加强大和灵活。你还想了解datetime模块中的哪些功能呢?
2025-07-29 19:20:14
1151
原创 解决 Squashfs LZMA Image 的魔数问题:让 `unsquashfs` 正常工作
本文介绍了如何解决非标准LZMA压缩的Squashfs镜像无法被unsquashfs工具识别的问题。这类镜像使用"shsq"魔数(0x71736873)而非标准的"hsqs"(0x73717368),且压缩算法标识符可能不正确。解决方法是通过十六进制编辑器修改镜像文件:将前4字节魔数改为标准值,并将偏移量0x14处的压缩标识符改为2(LZMA)。文章提供了详细的操作步骤和可选的Python自动化脚本,帮助用户使这些早期镜像兼容现代解压工具。建议修改前务必备份原始文件。
2025-07-28 10:44:39
626
原创 解决 Ollama 本地模型与工具集成中的 Context Window 限制
本文探讨了Ollama本地LLM与工具集成时常见的context window限制问题。默认2048 token的上下文窗口难以容纳复杂提示、工具调用信息和任务上下文,通常需要12000-13000 token。解决方案是通过自定义模型参数,以Qwen3:14b为例,在运行模型后使用/set parameter num_ctx命令调整窗口大小(如50000),并保存为新模型。这样可解决因上下文不足导致的错误,使模型能处理更复杂的集成需求。需注意根据设备显存合理设置数值。
2025-07-28 10:33:18
697
原创 玩转CSS选择器:基本语法结构
CSS选择器是CSS规则的核心部分,用于定位HTML元素并应用样式。基本语法为选择器 {属性: 值;},包含选择器、属性和值三部分。常见选择器类型包括:1)基础选择器(元素、类、ID、通配符);2)组合选择器(后代、子元素、兄弟关系);3)属性选择器(匹配特定属性);4)伪类和伪元素选择器(针对元素状态或特定部分)。选择器可组合使用以提高精确度,不同选择器具有不同特异性(优先级),ID选择器优先级最高。掌握选择器语法是编写高效CSS的关键。
2025-07-23 10:15:47
405
原创 无 sudo 运行:让你的程序在 Ubuntu 低端口监听
本文介绍了在Linux系统中让非root用户程序绑定特权端口(0-1023)的四种方法:①使用setcap为程序赋予CAP_NET_BIND_SERVICE能力;②通过authbind工具按端口授权;③利用iptables将低端口流量重定向到高端口;④程序以root启动绑定端口后主动降权。其中setcap和authbind最为推荐,前者适合二进制程序,后者支持脚本语言;iptables重定向无需修改程序权限;程序降权最安全但需开发投入。每种方法各有适用场景,可根据具体需求选择平衡安全性与便利性的方案。
2025-07-10 08:44:27
812
原创 Linux常用命令加强版替代品
摘要:本文将介绍一系列高效现代Linux命令行工具替代品,提升你的终端体验。包括文件管理工具Exa和Ranger、磁盘分析工具ncdu、文本搜索利器ripgrep、智能目录跳转Z Oxide、系统监控仪表盘Glances、网络诊断神器MTR、JSON处理工具jq、任务管理Taskwarrior,以及AI辅助工具Fabric和Ollama等。这些工具比传统命令更强大、更友好,能显著提高工作效率和终端使用体验。
2025-06-13 13:34:31
973
原创 理解 ROC AUC:评估二分类模型性能
本文深入解析了评估二分类模型性能的重要指标ROC AUC。首先介绍了混淆矩阵中的四种预测结果(TP、TN、FP、FN),指出准确率在类别不平衡时的局限性。接着详细阐述了ROC曲线的绘制原理及其解读方法,强调曲线越靠近左上角性能越好。然后解释了AUC指标的含义与价值,说明其作为ROC曲线下方面积,能反映模型区分正负例的能力,且对类别不平衡不敏感。最后提醒实际应用中需结合业务需求选择评估指标。文章指出ROC AUC能提供比单一准确率更全面可靠的模型评估,尤其在处理不平衡数据时更具优势。
2025-06-05 11:54:54
981
原创 在 Termux 中运行 VS Code (code-server):解决恼人的 MAC 地址错误
在 Android 上通过 Termux 运行是一项非常酷的尝试,它能极大地提升移动设备上的生产力。虽然 Android 的安全策略带来了一些小麻烦,但通过理解问题根源并巧妙地利用 Node.js 的运行时特性,我们可以有效地绕过这些限制。通过在 Node.js 启动时动态替换函数的实现,我们成功地为提供了一个它能够接受的 MAC 地址格式,从而解决了因 Android 系统返回 “00:00:00:00:00:00” MAC 地址而引发的错误。希望这个解决方案能帮助到遇到同样问题的朋友们!
2025-05-13 17:50:17
1040
原创 Mermaid 思维导图语法概览
思维导图是 Mermaid 中一个实验性的图表类型,用于以层级结构可视化地组织信息。除了图标集成部分仍处于实验阶段外,其语法是稳定的。
2025-04-30 09:03:34
522
原创 Exploring Special Firmware Flashing Modes Across SOC Vendors
In the world of System on Chip (SOC) devices—spanning smartphones, tablets, and embedded systems—firmware flashing is a cornerstone of manufacturing, repair, and recovery. When a device needs a full firmware rewrite, whether due to a bricked state, factory
2025-04-03 10:23:35
684
原创 忍无可忍!一次解决docker build的痛点!
在 Docker 环境下构建镜像时,由于网络问题,国内开发者往往会遇到令人头疼的构建速度慢、依赖无法下载等问题。本文将介绍如何在 Dockerfile 中设置代理和缓存,以提升构建速度并减少构建过程中的卡顿现象。
2024-11-15 10:14:46
2844
原创 利用PDM配置CUDA支持的PyTorch:适用于各种深度学习项目的依赖管理
自动选择CUDA支持的PyTorch版本,避免手动设置源的繁琐。实现依赖管理的统一与规范,确保环境在不同设备之间的可移植性。提升深度学习项目性能,最大化地利用现有的硬件资源。这种方法为多种PyTorch项目提供了便捷而高效的依赖管理方式。想要进一步了解PDM的功能,请访问PDM官网。希望这篇分享能帮助到所有致力于PyTorch开发的朋友们!
2024-11-01 11:16:02
538
原创 在 Windows 上配置 Ollama 服务并开放局域网访问
Ollama 是一个用于部署本地 AI 模型的工具,开发者可以在自己的机器上运行模型,并通过 API 接口调用。在本地搭建 Ollama 服务后,默认只允许本地访问,而局域网中的其他设备无法直接访问该服务。设置 Ollama 的环境变量,使其监听局域网的 IP 地址。在 Windows 防火墙中开放 Ollama 服务使用的端口(如 11434)。通过以上步骤,你可以轻松地在 Windows 上配置 Ollama 服务并允许其他局域网设备访问该服务。配置环境变量。
2024-09-12 14:50:27
32789
9
原创 为Dify 的 ssrf_proxy 配置上游代理
在配置 Dify 的ssrf_proxy服务时,我们可以利用 Squid 将 HTTP 请求通过上游代理进行转发。
2024-09-10 13:56:45
8308
3
原创 `asyncio.create_task` 和 `asyncio.ensure_future`
在开始讨论这两个方法之前,先简单回顾一下异步编程的背景。异步编程的核心概念是事件循环(Event Loop),它通过非阻塞的方式管理多个任务。在asyncio中,异步函数通常定义为async def,并通过await关键字来等待异步操作完成。用于创建一个异步任务,并将其调度到事件循环中执行。它是Python 3.7中引入的一个函数,专门用于启动异步任务。是一个更通用的工具,它可以将一个协程或一个Future对象封装为一个任务。这个方法在Python 3.4版本中引入,在更早的版本中应用广泛。
2024-08-14 10:14:20
2480
1
原创 Scala 中如何动态获取对象属性或方法 - 使用类似 Python 的 getattr 功能
通过反射API,Scala程序员可以像Python那样动态地访问对象属性或方法。尽管这需要更多的代码和反射知识,但这是在Scala中实现这一功能的一种可行方式。需要注意的是,这种方法在性能上可能不如直接的点符号访问或方法调用,因此在使用时应根据实际情况权衡利弊。在Scala中,我们也可以实现类似的功能。类似,但Scala中的对象需要具有指定的属性或方法。在编程语言中,有时候我们需要动态地访问对象的属性或方法。在Scala中,我们可以通过反射API实现类似Python的。请注意,这与Python中的。
2024-06-06 21:24:08
316
原创 在Docker中运行Logseq
但是,Logseq是基于local filesystem的,虽然可以通过sshfs来保证多客户端访问相同数据源,但是如何想使用它的API server的话,又不能天天开着主力PC。于是乎,笔者就想到了在docker中跑一个Logseq App作为API server。这是一个 Docker 工具,可用于在容器中运行 Logseq。利用该工具,我们可以构建一个 Logseq API 服务器,通过将服务器本地文件系统映射到 Docker 容器,从而实现服务器本地文件系统的访问。在启动容器之前,您可以修改。
2024-04-30 20:22:32
1278
2
原创 玩转CSS选择器:attribute selector
在 CSS 中,属性选择器 (attribute selector) 提供了多种操作符,帮助你根据特定的属性值来精准选择元素进行样式控制。这些操作符可以相互组合使用,配合其他选择器,让你更加精准地定位目标元素并进行样式控制。,例如 “file.pdf” 或 “report.2024.pdf”。” 或 “[invalid URL removed]”。,例如 “en-US” 或 “en-GB”。属性中包含单词 “logo”,例如。用于选择属性值包含指定值的元素,最基础的操作符,用于选择属性值。
2024-04-18 15:59:55
422
1
原创 如何解读模型评估结果
这些指标显示了一个模型的性能评估结果。如果任务要求处理不平衡的类别,那么可能需要更多的调优或使用特定的技术来改进模型的性能。MCC 考虑了分类结果的真实性和预测的一致性,取值范围为 [-1, 1],1 表示完美预测,-1 表示完全不一致的预测,0 表示随机预测。:ROC曲线是真阳性率(TPR,召回率)与假阳性率(FPR)之间的曲线,ROC AUC 表示ROC曲线下的面积大小,即模型在不同阈值下分类性能的综合表现。这是最常见的分类性能指标,但在处理不平衡数据时可能不够全面,因为它不考虑类别之间的分布差异。
2024-04-16 23:36:15
572
原创 利用 Python 查找并启动 Firefox
这篇博客将介绍如何使用 Python 脚本从 Windows 注册表中找到 Firefox 可执行文件的路径,然后启动 Firefox。使用从 Windows 注册表中获取的路径成功启动了 Firefox。模块来访问 Windows 注册表并找到 Firefox 可执行文件的路径。我们将查看注册表中列出已安装应用程序的典型位置。现在,我们将使用从注册表中获取的路径执行一个命令来启动 Firefox。为此,我们将使用 Python 的。)后,下一步是使用此路径启动 Firefox。
2024-03-27 14:22:43
447
原创 ARM软件逆向工程入门 02 - 实操:了解ARM调用约定(Calling Convention)
上一篇介绍了ARM的调用约定。这一回,我们体验一下简单的逆向,实际的看一下Calling Convention在汇编层面上是什么样的。
2024-03-05 23:52:39
615
原创 ARM软件逆向工程入门 01 - ARM调用约定(Calling Convention)
在计算机科学中,调用约定(Calling Convention)是指一系列规则,用于定义函数调用时参数传递和返回值处理的方式。它规定了函数的参数如何传递给被调用函数,以及被调用函数如何将返回值传递给调用函数。不同的处理器架构通常有不同的调用约定。
2024-03-05 00:44:59
1048
原创 深入理解 Python 中的 *Args 和 **Kwargs
Args 和 **Kwargs 是 Python 中非常重要的特性,它们为函数的参数传递提供了更大的灵活性和通用性。它们可以帮助我们编写更加灵活和通用的代码,适应不同的需求。例如,在编写装饰器时,我们经常会用到 *Args 和 **Kwargs,以便能够接受不同数量和类型的参数。在 Python 编程中,*Args 和 **Kwargs 是经常被用到的概念,它们为函数的参数传递提供了更大的灵活性。*Args 表示接受任意数量的位置参数,而 **Kwargs 则表示接受任意数量的关键字参数。
2024-02-23 12:40:38
335
1
原创 使用GPT快速开发视频连接工具
在网上看到了一些有趣的小视频,想着把这些视频连接成一个容易共享。可是作为一个程序员,对视频编辑软件又不了解。于是乎,我决定用程序员的方法来解决问题。考虑到这种工具编写虽然不难,但是比较烦,所以…
2023-11-16 11:33:57
366
1
原创 使用Python将SVG转换为PNG的脚本
然而,有时我们需要将SVG图像转换为位图格式,如PNG,以便在不支持SVG的应用程序或设备上使用。在这篇博客文章中,我们将介绍如何使用Python编写一个脚本,将SVG(可缩放矢量图形)文件转换为PNG(便携式网络图形)格式。4. 如果你安装了多个版本的Python,请确保使用正确的版本,在命令中使用`python3`而不是`python`。- `pyppeteer`库:这是一个用于自动化Chrome浏览器的库,我们将使用它来加载SVG图像并进行转换。# 使用Python将SVG转换为PNG的脚本。
2023-11-12 00:39:46
1193
1
原创 ARM软件逆向工程入门 00
本文介绍了ARM指令集的特点和ARM软件逆向工程的重要性,同时介绍了ARMv7和ARMv8架构的寄存器。此外,本文还介绍了binutils和逆向工程工具,包括IDA Pro、Ghidra、Binary Ninja和Radare2等。
2023-08-25 13:48:42
1548
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人