<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[♀我爱摇滚，更爱金属乐♀]]></title><description><![CDATA[重金属吉他爱好者]]></description><link>https://blog.youkuaiyun.com/rockage</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rockage]]></copyright><item><title><![CDATA[【技巧】MacOS下使用LaunchDaemons实现开机自启动]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/156364118</link><guid>https://blog.youkuaiyun.com/rockage/article/details/156364118</guid><author>rockage</author><pubDate>Sun, 28 Dec 2025 18:00:19 +0800</pubDate><description><![CDATA[本文介绍了在macOS系统中配置需要root权限的开机自启动程序的方法。以foo程序为例，详细说明了从目录创建、启动脚本编写到守护进程配置的全过程：1)将程序放入/usr/local/foo目录；2)创建包含执行参数的run.sh脚本；3)编写LaunchDaemons的plist配置文件；4)设置正确的文件权限。文章还提供了launchctl常用命令，包括启用/禁用自启、停止/重启服务、查看状态和日志等操作指南，并解决了新版本macOS可能出现的安全警告问题。通过这套标准流程，用户可以实现需要root权限]]></description><category></category></item><item><title><![CDATA[【填坑指南】PHP8报：Unable to load dynamic library ‘zip.so’ 错误]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/140409519</link><guid>https://blog.youkuaiyun.com/rockage/article/details/140409519</guid><author>rockage</author><pubDate>Sun, 14 Jul 2024 01:54:34 +0800</pubDate><description><![CDATA[一开始我按照以前摸索出来的安装PHP7.3的成功经验来编译方法安装PHP8.3，发现以前的套路已经失效了。以上这堆命令可以成功安装php 8，其中最后一条命令 php -v 是查看php版本号，如果显示无误，那么恭喜你安装成功，不需要再往下折腾了。说明zip这个扩展没有正常开启，因为现在我们安装的是php 8.0，而我的系统里的php zip 扩展因为前面的反复折腾，已经搞不清楚是哪个版本了，因此报错。这种情况多数发生在PHP安装时因为各种原因失败后，残余的库与最后安装的PHP版本不兼容导致的。]]></description><category></category></item><item><title><![CDATA[利用家用电脑进行以太坊PoS质押指南（亲测成功）]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/134725481</link><guid>https://blog.youkuaiyun.com/rockage/article/details/134725481</guid><author>rockage</author><pubDate>Fri, 01 Dec 2023 04:49:35 +0800</pubDate><description><![CDATA[以太坊（Ethereum）在2023年4月12日的上海/卡佩拉升级中成功实现了质押提款功能。这一重要升级为质押者提供了机会提取其质押奖励，并且允许他们安全退出质押并收回本金。这一举措在以太坊社区产生了积极的影响，吸引了更多人加入以太坊的质押生态系统。]]></description><category></category></item><item><title><![CDATA[Centos, RockyLinux 常用软件安装汇总]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/134367144</link><guid>https://blog.youkuaiyun.com/rockage/article/details/134367144</guid><author>rockage</author><pubDate>Mon, 13 Nov 2023 01:29:50 +0800</pubDate><description><![CDATA[注意，服务脚本第一行是 #!安装很简单，一直下一步即可，打开主界面也没什么可设置的，直接在地址框输入你的服务器IP:5901，如127.0.0.1:5901 ，输入完毕后点 Connect 即可。注意：本质上来说，Syncthing 并没有服务器/客户端的概念，任何一个节点既是服务器也是客户端，因为本例用了一台VPS作为一个永不关机的常备，姑且把它称为服务器。在服务器的WebUI进行设置，删除默认的Default forder，新建一个Sync的共享目录，物理地址是：/root/Sync。]]></description><category></category></item><item><title><![CDATA[【经验】解决重置 Windows 10 时报错：“无法找到介质” 的错误，Reagentc报错，BCD重建]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/133823238</link><guid>https://blog.youkuaiyun.com/rockage/article/details/133823238</guid><author>rockage</author><pubDate>Sat, 14 Oct 2023 11:48:16 +0800</pubDate><description><![CDATA[在Windows系统执行恢复-重置系统的时候如果出现这个画面：这个错误经常发生在硬盘对拷之后目标盘无法启动，或者EFI隐藏分区受损后导致。]]></description><category></category></item><item><title><![CDATA[Centos (含Rocky-Linux) VSFTPD 简单设置]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/133759477</link><guid>https://blog.youkuaiyun.com/rockage/article/details/133759477</guid><author>rockage</author><pubDate>Wed, 11 Oct 2023 03:04:05 +0800</pubDate><description><![CDATA[本文并非深入讨论vsftp配置的文章，仅以能连通为目的，适合那些临时需要上传点东西到服务器的场景。]]></description><category></category></item><item><title><![CDATA[【0基础教程】小学数学水平就能看懂的A星寻路算法详解（附Go代码）]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131773004</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131773004</guid><author>rockage</author><pubDate>Mon, 17 Jul 2023 19:24:21 +0800</pubDate><description><![CDATA[A星 (A-Star) 寻路算法常用于游戏编程，比如说向角色下达了移动指令后，它怎么从起点运动到终点，又或者控制NPC从一个地方走到另一个地方等等。本文参阅了 Myopic Rhino 的这篇文章：中译版：原文中只提及了算法的思想但没有具体代码实现，因此具体实现起来还是有一些坑要填。本文尽量采用最浅显的语言来表达，尽管略显啰嗦但保证大家都能读懂，事实上A星算法本身并没有包含太多数学理论，因此我相信理解它对大部分人来说还是很容易的。首先，A星算法是建立在一种格子(Grid)体系内的寻路机制。]]></description><category></category></item><item><title><![CDATA[【一文通】C/C++与Go语言混合编程入门级教程（Windows平台完成）]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131357305</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131357305</guid><author>rockage</author><pubDate>Sat, 24 Jun 2023 07:35:47 +0800</pubDate><description><![CDATA[Go语言可以通过自带的 cgo 工具进行 C+GO 混合编程，但在实践上可能会遇到很多坑，本文仅从 Hello World 的难度系数来实际体验 cgo ，免除大家前期遇坑后无法继续的苦恼。]]></description><category></category></item><item><title><![CDATA[[保姆级啰嗦教程] Tesseract OCR 5在Windows 10下编译安装及测试 （亲测成功）]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131336101</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131336101</guid><author>rockage</author><pubDate>Thu, 22 Jun 2023 01:19:52 +0800</pubDate><description><![CDATA[Tesseract是一个由Google赞助的OCR开源库，本文讲解了在Windows平台下如何安装的过程，其中涉及MSYS2、MinGW、CMake等工具。]]></description><category></category></item><item><title><![CDATA[[保姆教程] Windows平台下OpenCV编译安装和它的Go语言实现gocv的使用（亲测通过）]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131274753</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131274753</guid><author>rockage</author><pubDate>Sun, 18 Jun 2023 19:03:53 +0800</pubDate><description><![CDATA[OpenCV是一个开源的跨平台计算机视觉和机器学习软件库, GOCV是OpenCV在Go语言下的实现，本文详细介绍了在Windows平台下如何搭建GOCV环境，尽管GoCV是基于Go语言的，但是本文的大部分篇幅是围绕着OpenCV的通用安装方法展开的，因此也可以被其他非Go语言的应用场景所借鉴。]]></description><category></category></item><item><title><![CDATA[【0基础教程】Javascript 正则表达式里的分组捕捉 Capturing Groups 使用方法及原理]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131149121</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131149121</guid><author>rockage</author><pubDate>Sun, 11 Jun 2023 01:48:07 +0800</pubDate><description><![CDATA[在分组正则的时候，.exec方法总是会将当前匹配值的首字符位置保存在index变量里，当下一次触发.exec的时候，index并不会从0开始搜索，而是从第一次匹配完成之后的位置进行第二次匹配，如此反复，直至将整个字符匹配完成为止。三个点称为 “array spread” 或者“展开语法”，它的作用很多很杂，没有展开语法的时候，只能组合使用 push, splice, concat 等方法，来将已有数组元素变成新数组的一部分。直接运行代码，发现只解析了1-apple出来，后两行无效，这是为啥？]]></description><category></category></item><item><title><![CDATA[自动计算图片的宽度和高度拉伸至全屏附CSS及VUE简单实现]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131040065</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131040065</guid><author>rockage</author><pubDate>Mon, 05 Jun 2023 03:04:41 +0800</pubDate><description><![CDATA[场景：比如说APP封面等特点：能够自动适应设备的宽高，保证图片100%显示，不会缺失或者留边，但有可能会变形。]]></description><category></category></item><item><title><![CDATA[[小白教程] Javascript Callback以及Promise/async/await 一文通]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/131016870</link><guid>https://blog.youkuaiyun.com/rockage/article/details/131016870</guid><author>rockage</author><pubDate>Sat, 03 Jun 2023 04:19:45 +0800</pubDate><description><![CDATA[PS:上例中没有用到第二个参数 reject ，通过它将抛出一个拒绝执行的信息，比如我们将上例的resolve(n) 改为 reject(n) ，链式调用将会中断， f2、f3将不会被执行。这次打印出来就是n=1了，f1函数多了一个参数function_name，这个参数是告诉f1，当函数运行完毕后，将返回值通过function_name这个函数携带出来，这是一种反向调用，也就是所谓的 “回调函数 (callback function)”。，而在这个执行函数体内，需要调用的函数前面加一个。]]></description><category></category></item><item><title><![CDATA[【小白版】最简单的 goland package 教程包括自定义包的使用]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/130780308</link><guid>https://blog.youkuaiyun.com/rockage/article/details/130780308</guid><author>rockage</author><pubDate>Sat, 20 May 2023 13:10:28 +0800</pubDate><description><![CDATA[导入go语言的标准库非常简单，参见上例的Hello World中我们就导入了一个名为 fmt 的标准库，调用这个库里的Println函数：fmt.Println(“Hello World!现在，再次打开 go.mod，会发现自动添加了一堆包的依赖关系，因为iris这个包本身也引用了大量其他的第三方包，这些都会记录在go.mod里。这行命令将生成一个go.mod文件，这个文件会记录所有的包的依赖关系，一个空的go.mod只有项目名称和go版本号.那么，刚才系统自动下载的iris包的文件实际存储在哪？]]></description><category></category></item><item><title><![CDATA[如何实现C++毫秒级时间运算]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/130189091</link><guid>https://blog.youkuaiyun.com/rockage/article/details/130189091</guid><author>rockage</author><pubDate>Sun, 16 Apr 2023 22:05:42 +0800</pubDate><description><![CDATA[本文将介绍如何使用 C++ 标准库中的和头文件实现毫秒级时间运算。这两个库都是用于处理时间的库，但功能和用法有所不同。其中，的精度通常只能达到秒级别（对应 10 位 Unix 时间戳），而最高可以达到纳秒级（对应 13 位时间戳）。]]></description><category></category></item><item><title><![CDATA[gwlist转foxyproxy实用小程序]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/129891964</link><guid>https://blog.youkuaiyun.com/rockage/article/details/129891964</guid><author>rockage</author><pubDate>Sat, 01 Apr 2023 04:28:13 +0800</pubDate><description><![CDATA[foxyproxy插件规则文件转换]]></description><category></category></item><item><title><![CDATA[最简单的语言讲清楚chmod和Linux权限以及Vue项目如何部署在nginx的子目录下]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/128928750</link><guid>https://blog.youkuaiyun.com/rockage/article/details/128928750</guid><author>rockage</author><pubDate>Wed, 08 Feb 2023 04:36:35 +0800</pubDate><description><![CDATA[切记：每一次yarn build完了之后上传到服务器，都要执行一次chmod -R 755 test。现在给本尊全部权限(rwx)，算出第一位数：rwx 就是 4+2+1 = 7。给用户组读写（rw）权限，算出第二位数：rw-就是：4+2+0 = 6。给其他用户读权限®，算出第三位数：r–就是：4+0+0 = 4。(本人：读+写+执行 组：读+执行 其他用户：读+执行）好了，现在回到vue部署在服务器子目录下无法访问的问题。【-R表示将某个子目录的全部文件改成764权限】]]></description><category></category></item><item><title><![CDATA[二叉堆及堆排序详解保姆级教程略显罗嗦但保证能看懂]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/126863536</link><guid>https://blog.youkuaiyun.com/rockage/article/details/126863536</guid><author>rockage</author><pubDate>Thu, 15 Sep 2022 04:09:24 +0800</pubDate><description><![CDATA[因为前面说过，上滤是将操作节点视为子节点，因此如果发生了数据交换，较大的那个就是父节点（parent_node），下滤则相反，因为操作节点总是被视为父节点，因此如果发生了交换，较大值则一定是左右两个子节点的其中一个（也就是max_node），所以两种方法在进行递归调用的时候，出发位置是不同的。前面说过，一个大根堆，其最大值一定是最上层的根元素，那么，我们只需要将它与数组的最后一位互换，然后将换上去的节点做下滤操作。但是显然，已经不存在什么子树了，因为节点【1】已经是处于树的最底部，无法再下探。]]></description><category></category></item><item><title><![CDATA[Leetcode 第1342题：将数字变成 0 的操作次数 （位运算解题法详解）]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/126553834</link><guid>https://blog.youkuaiyun.com/rockage/article/details/126553834</guid><author>rockage</author><pubDate>Sat, 27 Aug 2022 08:42:33 +0800</pubDate><description><![CDATA[Leetcode 第1342题：将数字变成 0 的操作次数，使用位运算解题，包括位运算的基础只是，popcount函数的实现（统计一个二进制位中 “1” 的个数）以及clz 函数的实现（计算一个二进制位的长度）]]></description><category></category></item><item><title><![CDATA[最简单的FRP内网穿透教程]]></title><link>https://blog.youkuaiyun.com/rockage/article/details/124575215</link><guid>https://blog.youkuaiyun.com/rockage/article/details/124575215</guid><author>rockage</author><pubDate>Wed, 04 May 2022 22:20:25 +0800</pubDate><description><![CDATA[1、概述

众所周知，局域网内部机器由于没有公网IP，因此无法被局域网外部的客户端直接访问。FRP就是这样一个用于内网穿透的应用，它需要一台拥有公网IP的服务器作为中转，实现访问内网机器的目的。
首先第一步是下载FRP:
https://github.com/fatedier/frp/releases


2、基本原理

如图所示，现有公网服务器一台（220.181.38.251），
局域网主机两台，局域网地址分别是:
192.168.0.2
192.168.0.3

frp下载之后包含两端，frps是安装]]></description><category></category></item></channel></rss>