From 3dc82a814ac9c783fe69d1c7a1e1feabff0544a8 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 21 Oct 2023 15:24:08 +0000 Subject: [PATCH 001/244] Update 2 files - /_posts/2023-02-03-mbp.md - /_posts/2023-10-21-game.md --- _posts/2023-02-03-mbp.md | 2 +- _posts/2023-10-21-game.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 _posts/2023-10-21-game.md diff --git a/_posts/2023-02-03-mbp.md b/_posts/2023-02-03-mbp.md index 553ebba..e16ab03 100644 --- a/_posts/2023-02-03-mbp.md +++ b/_posts/2023-02-03-mbp.md @@ -28,7 +28,7 @@ tags: [Apple, MacBook, 体验] ## 游戏体验 众所周知,MacBook很不适合用来打游戏,因为大多数游戏都是在Windows上编写的。不过我已经安装了Windows11ARM的虚拟机,如果用来跑游戏效果会怎么样呢?我从我原来用的电脑上传了一个Galgame过来,打开试了一下,卡的不得了,不知道是因为没法调用显卡还是怎么回事,感觉帧率就10fps的样子,我在我原来的电脑上运行了一下试了试,运行非常流畅。连运行Galgame都这么垃圾,其他游戏估计更不用说了。不过这估计也是因为是虚拟机的缘故,所以我想找找MacOS支持的游戏。去Apple Store下载游戏……都要花钱,不过我看到我的MacBook作为Pro,有个Touch Bar,所以想整个Touch Bar的游戏,正好看到了个打砖块,试了试效果还不错。 当然用MacBook光看打砖块流畅那就没啥意义了,所以再升点级,试试三维弹球吧😝,之前我在网上看到一个开源版本的三维弹球,叫做[SpaceCadetPinball](https://github.com/k4zmu2a/SpaceCadetPinball),是用Windows XP自带的那个版本逆向出来的,我看了一眼是支持在MacOS上运行的,于是就下载下来编译了一下,效果确实不错,不过我又试了一下在Windows原生的版本,一样很流畅啊😂,而且不知道为什么感觉开源的这个版本缓冲器不太对劲,弹的没原生的舒服……这试游戏没必要针对弹球游戏吧😂。 - 不过我也不知道MacOS支持什么游戏,想了想我在Epicgames上白嫖了不少游戏,干脆下载下来看看都有啥支持吧。看了一圈while True:learn()居然支持,然后就下载下来试了一下,不过这个基本上也没啥特效啥的,就是那种逻辑推理游戏,也展现不出什么,不过我原来的电脑运行这个游戏的时候风扇就开始高速转起来了,MacBook能完全没声音应该还是证明有点东西的。 + 不过我也不知道MacOS支持什么游戏,想了想我在Epic Games上白嫖了不少游戏,干脆下载下来看看都有啥支持吧。看了一圈while True:learn()居然支持,然后就下载下来试了一下,不过这个基本上也没啥特效啥的,就是那种逻辑推理游戏,也展现不出什么,不过我原来的电脑运行这个游戏的时候风扇就开始高速转起来了,MacBook能完全没声音应该还是证明有点东西的。 不过我也不一定非要考虑电脑游戏,我也可以考虑一下手机游戏,毕竟MacOS在M系列芯片上是可以运行iOS软件的,不过系统做了一些限制,不是所有都支持,所以我就下了一个[PlayCover](https://github.com/PlayCover/PlayCover),在上面安装了公主连结 Re:Dive。效果还挺不错的,完全不卡,不过运行的时候可以明显感觉有点开始发热了,我浏览网页看视频的时候完全不发热,看来这个游戏还是挺费资源的。 ## 综合体验 经过这些天的使用,我感触最深的就是这台电脑的续航了,别说一天不充电,感觉两三天不充电都没问题,毕竟标称续航是20小时,可以算是续航最强的笔记本电脑了。不过这样的话感觉就更像是大号手机/平板那样了,用的时候不充电,24小时不用关机,感觉和手机差不多,相比平板功能还是更多,要是说用iPad那个东西可没有终端,越狱也还是比不了MacOS。而相比Android平板,我之前还在上面[试过Termux](/2022/02/15/termux.html),不过问题和越狱差不多,支持的东西还是不如MacOS,虽然MacOS也不是开源的,但是对我来说我感觉那个终端就像Linux那个终端差不多,加上HomeBrew效果还是挺不错的,另外MacBook比平板的续航更长,就是重量也更重了。 diff --git a/_posts/2023-10-21-game.md b/_posts/2023-10-21-game.md new file mode 100644 index 0000000..0fca304 --- /dev/null +++ b/_posts/2023-10-21-game.md @@ -0,0 +1,33 @@ +--- +layout: post +title: 在MacBook玩游戏的各种方法 +tags: [Apple, MacBook, 游戏] +--- + + 我倒要看看是谁在说Mac打游戏是疯子😡 + +# 起因 + 自从[用了MacBook Pro](/2023/02/03/mbp.html)以后,我用我以前Windows笔记本的次数越来越少了。虽然性能可能比不上,但是安静和超长续航的体验还是相当不错的。但是我也不是完全不玩游戏的人,有时候闲了也有打游戏的需求,那我如何在不使用Windows系统的情况下打游戏呢? + +# 在MacBook玩游戏的方法 +## 原生游戏 + 一般来说如果想发挥MacBook的全部能力,那自然是完完全全为Mac设计,不需要任何转换等方法的游戏最好了,这类游戏一般在Mac App Store就能找到和下载,只是绝大多数都不是免费的,我也就下过一款[TouchBrickOut](https://apps.apple.com/us/app/ibreakout/id1582094533)的打砖块游戏,这是真真正正为Mac设计的,不仅原生还要Touch Bar。当然对于大多数游戏来说不会为Mac专门设计,毕竟Mac的游戏玩家比较少。但是能在Mac上原生运行的游戏除了为Mac设计以外,就是开源游戏了。毕竟源代码都有了,想在哪里编译都可以。对于我玩的游戏来说,有几款正好符合这一点,比如[osu!lazer](https://github.com/ppy/osu),还有之前玩过的[三维弹球](https://github.com/k4zmu2a/SpaceCadetPinball)。 +## iOS游戏 + 因为M系列芯片基于ARM架构,所以我的MacBook也可以玩iOS的游戏。这类游戏一般也能直接在Mac App Store上下载到,比如我玩过的[药水制作师](https://apps.apple.com/us/app/%E8%8D%AF%E6%B0%B4%E5%88%B6%E4%BD%9C%E5%B8%88/id950654598)。但其实有很多iOS游戏在Mac App Store上都搜索不到,应该是开发者设置了规则不允许在Mac上使用。对于这类游戏可以在[Decrypt IPA Store](https://decrypt.day/)上下载,并且使用[PlayCover](https://github.com/PlayCover/PlayCover)安装。对我来说,我一般玩[公主连结Re:Dive](https://decrypt.day/app/id1423525213),以及一些模拟器,比如[XP3Player](https://apps.apple.com/us/app/xp3player/id1064060287)和[ONSPlayer](https://apps.apple.com/us/app/onsplayer/id1388250129)(其实这两款软件可以在Mac App Store上下载,但是都要花钱……所以我就去网上找的ipa文件然后在PlayCover上安装了) +## 使用Rosetta 2的x86游戏 + 在M系列芯片出来以前,其实也有不少Mac上的游戏,但是这类游戏可能在M芯片的Mac出来之前就已经开发好了,想让开发者为M芯片做适配显然不大可能。不过macOS有Rosetta 2可以让开发者不需要任何改动的情况下就让游戏在M系列芯片Mac上运行。这类游戏非常多,基本上在Steam和Epic Games上下载的游戏都是x86的,像我用的Epic Games Launcher以及在上面下载的游戏[while True:learn()](https://launcher.store.epicgames.com/zh-CN/p/while-true-learn)都是这样的,不过我玩的这些对性能要求都非常低,所以即使用了转译,但是玩起来并不会卡。 +## 基于脚本的Galgame游戏 + 很多Galgame都是用一些专用的脚本引擎工具写出来的,例如T Visual Presenter、NScripter还有Ren'Py等等,因为是脚本,所以通常来说很容易跨平台,毕竟它们没有太多依赖系统本身的东西,只要能写出对应平台的解析器,脚本都能运行。像上述提到的XP3Player、ONSPlayer还有[RenPyViewer](https://apps.apple.com/us/app/renpyviewer/id1547796767)就可以运行很多基于脚本的游戏。不过很多Ren'Py游戏都有发行macOS版本,所以一般不需要安装RenPyViewer。只是有可能它们都是基于x86开发的,可能需要用Rosetta 2转译…… +## 在网页上运行的游戏 + 浏览器作为跨平台最强的解决方法,自然游戏也不例外,能在网页上运行的游戏也很多,像RPG Maker MV制作的游戏基本上都可以在浏览器上运行。我看到有一个[网站](https://amemei-lists.top/posts/49e03169/)就收集了很多这种游戏,他们之前还把游戏放在了GitHub上。不过Github对[Sexually Obscene Content](https://docs.github.com/zh/site-policy/acceptable-use-policies/github-sexually-obscene-content)内容是不容忍的,所以他们在GitHub上的东西就消失了……不过我搜了一下还有一些漏网之鱼,[这个账号](https://github.com/jjbR18)还有这样的游戏可以玩🤣(有效性只限我写文章之前的时间,说不定哪天被GitHub发现就没了)。其实对于这种网页上可以运行的游戏来说,最好下载下来,虽然RPG Maker MV的游戏可以在线玩,但是加载那么多资源,尤其这些文件还是在境外,对国内玩家非常的不友好😆,所以如果想在Mac上玩,可以下载下来,然后在终端那个目录下执行`python3 -m http.server`,就可以打开 下开始游戏了。不过Safari的效果不太行,很多游戏连声音都没有,想玩还是下载Chrome之类的浏览器比较好。 +## 使用Wine🍷游玩Windows游戏 + 除了相对比较原生的办法,不太优雅的办法就是用基于Wine的各种东西了。其实我之前不太想在MacBook上使用Wine的,因为一般如果是Linux系统在ARM芯片上运行的话需要用QEMU User模式模拟x86,然后再运行Wine,效率极其低下,还不如用虚拟机呢(虽然听过Crossover,不过我当时以为它是按这种方式的,而且还要收费😂)。不过macOS不太一样,它有Rosetta 2加持,效率比QEMU User模式高太多了,虽然是两次翻译但是毕竟有黑科技还算是能玩。尤其是前段时间出的Game Porting Toolkit,据说很厉害,所以前几天我根据[这个教程](https://www.applegamingwiki.com/wiki/Game_Porting_Toolkit)安装了一个,编译的时候第一次听到我的MacBook风扇转😂。试了试效果确实不错,找了个Unity3D的游戏可以满帧率运行。虽然很不错,不过我又去网上搜了搜,发现我是**,有个开源的软件[Whisky](https://github.com/Whisky-App/Whisky)不需要编译任何东西,就可以使用Wine和GPTk,而且配置也很简单,还能使用DXVK,而且因为是已经编译好的,不需要安装依赖,也不需要源码之类的东西,我通过上面教程安装的大小要4个多GiB,但是这个就只要1个多GiB,还不需要考虑乱七八糟的东西。 + 经过我的实测,GPTk(其实就是D3DMetal)兼容性更好一些,效率也更高,但是占内存很大,DXVK似乎效率低一些,但是占内存比较小,因为我的MacBook只有8GiB内存,而且我玩的游戏在哪个上面都能跑满帧率 ~~(反正3A大作我也不可能在MacBook上玩,估计M2的水平也玩不了……不如说我基本上不玩3A大作🤣)~~ ,所以我在玩游戏一般还是会用DXVK多一些,除非打不开才会用D3DMetal。 +## 使用虚拟机游玩Windows游戏 + 因为我的MacBook只有8GiB内存,而且硬盘也只有256GiB,跑虚拟机压力实在是太大了,我以前试过[UTM](https://github.com/utmapp/UTM),但是玩不了游戏,随便什么游戏都会卡的动不了,当然也可能是UTM的显卡驱动不太行,不过现在的话我也不想尝试其他虚拟机了,所以我只能说强烈不推荐使用虚拟机玩游戏。 +## 云游戏方案 + 这种方案直接就不在本机运行了,流畅程度全看网络和连接的主机性能。我以前也写过一篇[关于云游戏的体验](/2021/09/28/cloudgame.html),在这里就不多赘述了。 + +# 感想 + 这么看来MacBook玩游戏的方法挺多的嘛,谁说一定要Windows才能打游戏呢?我觉得说在macOS上打游戏的人是精神病的人自己才是精神病吧,谁也没有说买MacBook就是专门拿来打游戏的,那些人就是觉得买Mac亏,估计还很穷吧🤣。 + 顺便一说,有个叫[AppleGamingWiki](https://www.applegamingwiki.com/wiki/Home)的网站上记录了一些比较大的游戏在M系列芯片上的兼容性,如果真的有想在Mac上打游戏的想法,也可以去这个Wiki上参考一下。 \ No newline at end of file From 62ea62e8e8e1d9236f1c5275e372707087174af1 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 9 Dec 2023 17:42:34 +0000 Subject: [PATCH 002/244] Update file 2023-12-10-openfyde.md --- _posts/2023-12-10-openfyde.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 _posts/2023-12-10-openfyde.md diff --git a/_posts/2023-12-10-openfyde.md b/_posts/2023-12-10-openfyde.md new file mode 100644 index 0000000..6296080 --- /dev/null +++ b/_posts/2023-12-10-openfyde.md @@ -0,0 +1,24 @@ +--- +layout: post +title: rpi4-openfyde的使用体验 +tags: [树莓派, openfyde] +--- + + 什么样的系统用户体验更好呢? + +# 起因 + 最近玩树莓派感觉有点玩腻了,毕竟我不是搞硬件的人,树莓派的GPIO接口对我来说毫无意义,当作PC或者服务器的话性能又太差了,兼容性也不太行(这么看来新出的树莓派5一样对我来说毫无意义,和4B一样都是垃圾)。但是毕竟那个东西也挺贵的,闲置也不太好,因此我想在上面装上适合普通人使用的系统,然后送给家里的人使用。 + +# 系统的选择 + 首先服务器版的系统肯定不需要考虑了,谁会用一个满是命令行的系统啊,在我看来普通人使用的系统只能在Windows, MacOS, Android, ChromeOS里面选了,任何GNU/Linux发行版的桌面版在我看来都不太适合普通人使用,[Windows之前已经试过了](/2023/05/22/rpi-win.html),可以说基本上没法用,就是纯粹的垃圾。MacOS显然还没有什么方案可以安装(至于仿MacOS的TwisterOS对于普通人来说使用难度也很大,安装软件都是难事),Android虽然也不是不能用但是作为桌面端系统效果还是不太行,所以我觉得可能也就只有ChromeOS可以考虑一用了。 + 不过官方的ChromeOS要支持的设备才能刷,树莓派显然不在其中,要么就刷ChromiumOS,但是那个要登谷歌账号,在国内使用也不太好。幸好国内有一家对ChromeOS做了本地化的公司,开发了FydeOS,我看了一下如果想在树莓派上安装,就只能安装FydeOS for You,但那个是收费的,每年要120CNY,太贵了,我肯定是不会考虑的。还好,还有一个替代品,那就是openFyde,两个系统我也不太清楚有什么区别,可能是云服务有所不同吧?对于树莓派来说,安装[rpi4-openfyde](https://github.com/openFyde/overlay-rpi4-openfyde)就可以了,另外想要安装的话最好选文件名中包含“archero”的那个,才能使用Android子系统。 + +# 安装与使用体验 + 第一次安装的时候我是直接把镜像用Raspberry Pi Imager刷进去的,我以为它和其他的树莓派系统一样刷进去之后再配置其他东西,结果并不是,那个镜像是个安装包,想要用的话需要先格式化TF卡,然后找一个U盘把系统刷进去,然后把U盘和TF卡都插入树莓派才能安装,就和安装ESXi一样。 + 安装之后拔掉U盘重启就可以创建用户使用了,首先作为浏览器为基础的系统,我平时用浏览器可能也就是看看Bilibili吧,之前我使用树莓派官方系统的浏览器看Bilibili效果非常差,看看装了openFyde的效果怎么样?结果令人失望,效果还是一样的差,主要应该还是没有硬件解码的问题吧……树莓派4B的GPU好像只支持硬件解码H264,而树莓派5更是卧龙凤雏,只支持H265,真是有够逆天。这么说来FydeOS for You可是要每年120CNY呢,这个水平的性能他们有自己测过吗?就这样也能收费吗?至于其他不涉及视频的网页倒是还算流畅,不过毕竟GPU很垃圾,有一些特殊情况还是会卡。 + 除了浏览器之外,可能用的比较多的就是Android子系统了吧,要是想轻度办公的话应该需要一个Office,用浏览器的Office也不太好,所以先安装个WPS Office试试看,这个从Fyde的应用商店里就能直接安装,还挺方便的。不过安装好之后效果感觉不太行,首先这个Android子系统居然不支持滚轮,复制粘贴都要像手机那样长按,而且很多时候比如新建文档,它会开两个窗口,原来新建文档的窗口不会关掉……这可不像是能让人用的样子啊……而且整体使用也比浏览器卡,使用起来并不顺畅。另外输入法也不是默认开启的,要在设置里设置,体验也不太行。 + 我试了一下那个应用商店,上面的应用要么就是网页链接,要么就是Android程序,要么就是浏览器插件,Android程序从我用了WPS Office来看不怎么抱有希望了,放网页链接的我感觉有点无语😓,其他系统的浏览器都能把网页当作应用,这个系统反倒是直接当超链接跳过去了……至于浏览器插件,那个只要是能安装浏览器就都能用吧,没啥特别的。 + 虽然普通人可能用不上,这个系统还有一个Linux子系统,具体是什么Linux我没细看,不过好像是使用容器启动的。我试了一下效果还行,只是不知道为什么不能使用全部内存,我使用的是8GiB的树莓派,但是分配给Linux的只有6GiB,存储也是分配的,默认10GiB。明明都是Linux系统为什么ChromeOS要限制子系统的资源呢? +# 总结 + 总的用下来,树莓派4B的性能可能真的就只能看看网页了,连视频都不能流畅播放,安装Android应用效果也很差,不过有时候限制多并不是一件坏事,毕竟对普通人来说如果这个性能让人不要抱有更多的希望,反倒是提高了用户体验呢。虽然如果是用比如Ubuntu之类的系统能做的事情应该更多,但很多情况不是普通人应该关心的事情,尤其这个芯片还是ARM指令集的,即使某些应用提供了Linux版也不一定能在树莓派上安装,尤其这个安装很多时候也不是双击就能搞定的,openFyde至少能做到真想安装Android应用的时候双击还是能安装的,卡虽卡了点,但是一般情况不会出现让普通人看了会看不懂的情况,已经算很不错了。 + 因此,我觉得如果让普通人使用树莓派,安装openFyde是最好的选择了。 \ No newline at end of file From f9abd1e5d74731baddf8b854c0974de8ab89dfb1 Mon Sep 17 00:00:00 2001 From: mayx Date: Sun, 24 Dec 2023 12:30:52 +0000 Subject: [PATCH 003/244] Update file 2023-12-24-android.md --- _posts/2023-12-24-android.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 _posts/2023-12-24-android.md diff --git a/_posts/2023-12-24-android.md b/_posts/2023-12-24-android.md new file mode 100644 index 0000000..c55bcbf --- /dev/null +++ b/_posts/2023-12-24-android.md @@ -0,0 +1,24 @@ +--- +layout: post +title: 如何在Linux容器内运行Android? +tags: [Linux, Android] +--- + + 原生运行Android肯定比虚拟机好! + +# 起因 + 前段时间我在树莓派上安装了[openFyde](/2023/12/10/openfyde.html),后来发现原来它的ArcHero安卓子系统是基于anbox开发的,和ChromeOS的安卓子系统有一些区别,至于区别在哪我也不是特别清楚。不过既然它的安卓子系统和Linux直接安装的没啥区别,那不如我试试看在普通的Linux上安装容器化的安卓系统效果怎么样? + +# 试用Waydroid + 最开始我测试的是[Waydroid](https://github.com/waydroid/waydroid),因为听说anbox的升级版就是Waydroid,据说性能比anbox强,所以想试试看,安装挺简单的,执行个脚本之后用apt就能安装。不过我的测试平台是Ubuntu Server 20.04LTS,Waydroid之所以叫这个名字是因为它要基于Wayland显示服务器运行,可我是无界面的系统要怎么用它啊?Waydroid好像没有无头模式这种东西,不过我搜了一下weston实现了Wayland协议而且支持无头模式,用法也很简单,安装好weston之后执行`weston --backend=headless-backend.so`就可以了。 + 不过默认安装好的Waydroid不能运行ARM架构的程序,似乎是因为libhoudini之类的库是有版权的,所以不能直接集成,不过还好有人开发了一个[工具包](https://github.com/casualsnek/waydroid_script),可以给Waydroid安装包括libhoudini在内的多个因为版权等原因不能直接在项目里使用的程序,而且操作起来也很简单,体验还不错。 + 至于怎么查看界面,因为是无头模式启动的所以没有界面,只能通过adb查看,不过我试了一下scrcpy不知道为什么不能用,但是用Airtest就能看到界面,就挺奇怪的……还有就是分辨率很低,不过这个应该改weston的启动参数就可以改分辨率了吧,但因为后来发现Waydroid不能开多个实例感觉有点废物就没有在继续研究了。 + 不过总的来看,如果是在桌面版的Linux上,而且界面是使用Wayland协议的效果应该会比较好,好像Ubuntu22.04以上的系统默认会使用Wayland,在这个系统上面使用Waydroid效果应该比在Windows上使用WSA的效果还要好。毕竟这可不是虚拟机运行,而是使用容器技术原生运行的,如果有机会的话还是值得一用的。 + +# 试用redroid + 因为Waydroid不能开多个实例,所以我搜了一下有没有类似技术而且能开多个实例的,结果就找到了[redroid](https://github.com/remote-android)。安装也很简单,执行几个命令修改下内核模块然后直接用docker pull个镜像就可以用,而且这个切换版本比Waydroid简单,Waydroid想换别的安卓版本要自己整镜像,不然就只能用基于Android 11的LineageOS,redroid可以按镜像的版本号选择希望使用的安卓版本,而且我测试了一下,redroid是可以使用scrcpy连接的,看起来效果还不错。 + 但是我试了一下运行一些ARM的安卓程序会出现闪退的情况,我以为是因为没有ARM兼容库的问题,但是文档上写的镜像里面已经自带了libndk……这么看来可能是因为libndk的兼容性不太行啊,另外libndk好像是给AMD的CPU使用的,我用的CPU是Intel的,Intel应该用libhoudini才对,然而我找了半天也没有找到怎么让redroid使用libhoudini……真是令人失望啊。 + +# 总结 + 看来在容器内运行Android系统的需求还是太少了,很多问题都没人解决……不过想想也是,那些搞云手机的大多直接拿真机运行Android,用兼容层的性能损耗也很大,而服务器级别的ARM芯片也不便宜…… + 另外就是使用Linux的人也很少,而且像那些在Windows上玩安卓游戏的人都是用的虚拟机,性能也都够用了,毕竟那么高功率的桌面端CPU怎么样都比超低功率的手机CPU强啊,所以容器内运行Android的需求比较少可能也很正常吧…… \ No newline at end of file From 2298c9b2714ab38697526bbc085a202f401ab350 Mon Sep 17 00:00:00 2001 From: mayx Date: Sun, 24 Dec 2023 16:49:42 +0000 Subject: [PATCH 004/244] =?UTF-8?q?=E6=9B=B4=E6=96=B0.gitlab-ci.yml?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8ca0f68..8018bfb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ # Template project: https://gitlab.com/pages/jekyll # Docs: https://docs.gitlab.com/ee/pages/ -image: ruby:2.6 +image: ruby variables: JEKYLL_ENV: production From 7609bb0b8f4c7b244278ffe30490cfe4ba7c9dea Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 13:41:55 +0000 Subject: [PATCH 005/244] Update message.js --- Live2dHistoire/live2d/js/message.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Live2dHistoire/live2d/js/message.js b/Live2dHistoire/live2d/js/message.js index 032fcf6..90a5e88 100644 --- a/Live2dHistoire/live2d/js/message.js +++ b/Live2dHistoire/live2d/js/message.js @@ -287,8 +287,9 @@ if(!norunFlag){ showMessage('思考中~', 0); $.ajax({ type: 'POST', - url: talkAPI, + url: "https://www.tuling123.com/openapi/api", data: { + "key": "ae8933884bcc4bac96289a43d8a864db", "info":info_, "userid":userid_ }, From c622346eaa8b6891571ae60f91965b722cf14df3 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 13:58:00 +0000 Subject: [PATCH 006/244] Update 2 files - /Gemfile - /Live2dHistoire/live2d/js/message.js --- Gemfile | 2 +- Live2dHistoire/live2d/js/message.js | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 6547c92..44e0d9c 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org" -gem "jekyll", "~> 4.1.0" +gem "jekyll" group :jekyll_plugins do gem "jekyll-gist" gem "jekyll-coffeescript" diff --git a/Live2dHistoire/live2d/js/message.js b/Live2dHistoire/live2d/js/message.js index 90a5e88..d79a293 100644 --- a/Live2dHistoire/live2d/js/message.js +++ b/Live2dHistoire/live2d/js/message.js @@ -289,17 +289,24 @@ if(!norunFlag){ type: 'POST', url: "https://www.tuling123.com/openapi/api", data: { - "key": "ae8933884bcc4bac96289a43d8a864db", - "info":info_, - "userid":userid_ + "reqType":0, + "perception": { + "inputText": { + "text": info_ + } + }, + "userInfo": { + "apiKey": "ae8933884bcc4bac96289a43d8a864db", + "userId": userid_ + } }, success: function(res) { - if(res.code !== 100000){ + if(res.intent.code !== 0){ talkValTimer(); showMessage('似乎有什么错误,请和站长联系!',0); }else{ talkValTimer(); - showMessage(res.text,0); + showMessage(res.results[0].values.text,0); } console.log(res); $('#AIuserText').val(""); From eefdb73475f9733b110df3d654539e269915e2aa Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 14:59:15 +0000 Subject: [PATCH 007/244] Update 3 files - /Gemfile - /.gitlab-ci.yml - /Live2dHistoire/live2d/js/message.js --- .gitlab-ci.yml | 2 +- Gemfile | 2 +- Live2dHistoire/live2d/js/message.js | 12 ++---------- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8018bfb..abadf5b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ # Template project: https://gitlab.com/pages/jekyll # Docs: https://docs.gitlab.com/ee/pages/ -image: ruby +image: ruby:2.7 variables: JEKYLL_ENV: production diff --git a/Gemfile b/Gemfile index 44e0d9c..23c77d7 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org" -gem "jekyll" +gem "jekyll" == 3.9.3 group :jekyll_plugins do gem "jekyll-gist" gem "jekyll-coffeescript" diff --git a/Live2dHistoire/live2d/js/message.js b/Live2dHistoire/live2d/js/message.js index d79a293..5a1ae5a 100644 --- a/Live2dHistoire/live2d/js/message.js +++ b/Live2dHistoire/live2d/js/message.js @@ -287,18 +287,10 @@ if(!norunFlag){ showMessage('思考中~', 0); $.ajax({ type: 'POST', - url: "https://www.tuling123.com/openapi/api", + url: "https://turing-api.mayx.eu.org/", data: { - "reqType":0, - "perception": { - "inputText": { - "text": info_ - } - }, - "userInfo": { - "apiKey": "ae8933884bcc4bac96289a43d8a864db", + "info": info_, "userId": userid_ - } }, success: function(res) { if(res.intent.code !== 0){ From 1734d36dd529d9802055078fce6dd19863965c36 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 15:02:50 +0000 Subject: [PATCH 008/244] Update file Gemfile --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 23c77d7..9ffec38 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org" -gem "jekyll" == 3.9.3 +gem "jekyll", "~> 3.9.3" group :jekyll_plugins do gem "jekyll-gist" gem "jekyll-coffeescript" From 975fcf9d8e3dfdda2b6cbaa9647e96a084c29f4e Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 15:12:33 +0000 Subject: [PATCH 009/244] Update 2 files - /Gemfile - /.gitlab-ci.yml --- .gitlab-ci.yml | 2 +- Gemfile | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index abadf5b..80822de 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,7 @@ variables: LC_ALL: C.UTF-8 before_script: - - gem install bundler + - gem install bundler -v 2.4.22 - bundle install pages: diff --git a/Gemfile b/Gemfile index 9ffec38..df61ca4 100644 --- a/Gemfile +++ b/Gemfile @@ -1,11 +1,11 @@ source "https://rubygems.org" gem "jekyll", "~> 3.9.3" group :jekyll_plugins do - gem "jekyll-gist" - gem "jekyll-coffeescript" + gem "jekyll-gist", "~> 1.5.0" + gem "jekyll-coffeescript", "~> 1.1.1" gem "jekyll-assets" - gem "jekyll-sitemap" - gem "jekyll-feed" + gem "jekyll-sitemap", "~> 1.4.0" + gem "jekyll-feed", "~> 0.15.1" gem "jekyll-theme-minimal" - gem "jekyll-paginate" + gem "jekyll-paginate", "~> 1.1.0" end From a4e9d17cf1d43fb505477e5f609673e588fa28ab Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 15:16:27 +0000 Subject: [PATCH 010/244] Update file Gemfile --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index df61ca4..d00a6f0 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ gem "jekyll", "~> 3.9.3" group :jekyll_plugins do gem "jekyll-gist", "~> 1.5.0" gem "jekyll-coffeescript", "~> 1.1.1" - gem "jekyll-assets" + gem "jekyll-assets", "~> 1.0.0" gem "jekyll-sitemap", "~> 1.4.0" gem "jekyll-feed", "~> 0.15.1" gem "jekyll-theme-minimal" From e6281bfa5fd8c2073026bbaccb1e36448defe296 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 30 Dec 2023 15:27:02 +0000 Subject: [PATCH 011/244] Update file Gemfile --- Gemfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Gemfile b/Gemfile index d00a6f0..a7adda3 100644 --- a/Gemfile +++ b/Gemfile @@ -8,4 +8,6 @@ group :jekyll_plugins do gem "jekyll-feed", "~> 0.15.1" gem "jekyll-theme-minimal" gem "jekyll-paginate", "~> 1.1.0" + gem "kramdown-parser-gfm", "~> 1.1.0" + gem "kramdown", "~> 2.3.2" end From 4afea923c5f83d3bf056006abde80e8fbf83f04a Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 1 Jan 2024 09:01:21 +0000 Subject: [PATCH 012/244] Update 3 files - /package.json - /_posts/2023-04-05-ai.md - /_posts/2024-01-01-summary.md --- _posts/2023-04-05-ai.md | 2 +- _posts/2024-01-01-summary.md | 21 +++++++++++++++++++++ package.json | 7 +++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 _posts/2024-01-01-summary.md create mode 100644 package.json diff --git a/_posts/2023-04-05-ai.md b/_posts/2023-04-05-ai.md index 975bfbf..983e252 100644 --- a/_posts/2023-04-05-ai.md +++ b/_posts/2023-04-05-ai.md @@ -7,7 +7,7 @@ tags: [AI, LLM, 人工智能] 最近人工智能发展的还真是不错啊…… # 起因 - 最近ChatGPT为代表的人工智能发展的越来越好了,而且因为它对生产力的提升使得了解AI的人也越来越多了。虽然我也不算是对AI很感兴趣,但是我在Github Copilot刚出的时候就已经用上了,到现在一直在用(不过毕业了以后估计就用不了了吧😂)。不过那时候Copilot毕竟专业性比较高,知道的人也比较少,不像现在ChatGPT能在各行各业使用,甚至还有基于类似模型的Vtuber,比如[Neuro-sama](https://www.twitch.tv/vedel987),所以即使是普通人使用它,都能够减轻自己的工作压力,所以现在的人们都在讨论它。 + 最近ChatGPT为代表的人工智能发展的越来越好了,而且因为它对生产力的提升使得了解AI的人也越来越多了。虽然我也不算是对AI很感兴趣,但是我在Github Copilot刚出的时候就已经用上了,到现在一直在用(不过毕业了以后估计就用不了了吧😂)。不过那时候Copilot毕竟专业性比较高,知道的人也比较少,不像现在ChatGPT能在各行各业使用,甚至还有基于类似模型的Vtuber,比如[Neuro-sama](https://www.twitch.tv/vedal987),所以即使是普通人使用它,都能够减轻自己的工作压力,所以现在的人们都在讨论它。 当然在这之前,还有一些很厉害的画图AI,比如使用了Stable Difusion的NovalAI,以及Midjourney啥的,不过因为我对画图并不感兴趣,所以它发展的有多好也基本上和我没有关系。其实除了这些能够AIGC的模型之外,在那之前还有下围棋的AlphaGO啥的,那个我就更不感兴趣了,相信大多数人也不感兴趣,所以总的来看也就只有现在才能证明AI发展到了能够让大家觉得能干涉到更多人的地步吧。 也正因为现在以ChatGPT为代表的LLM的发展,开源社区也开始搞起来一些有意思的东西。不过LLM的训练成本比较高,所以现在开源社区在这一块的发展也许得感谢比如Facebook的[LLaMA](https://github.com/facebookresearch/llama)之类基础的模型,才能让大家能用较低的成本去训练属于自己的AI吧。 diff --git a/_posts/2024-01-01-summary.md b/_posts/2024-01-01-summary.md new file mode 100644 index 0000000..d9f41de --- /dev/null +++ b/_posts/2024-01-01-summary.md @@ -0,0 +1,21 @@ +--- +layout: post +title: 年终总结 +tags: [总结] +--- + + 接下来,就是长跑的时间了…… + +# 2023年过的怎么样? + 至少今年我顺利毕业了,而且也有一份还可以的工作能让我赚点钱,比年初的预期已经好了很多,从总体上来看还算不错吧,另外还有一个很重要的原因就是我早晨抽卡抽到UP角色了😂,所以状态还可以。 + 不过从我写博客的次数可以看出来,今年我探索新事物的动力也不怎么高了,其实吧我的工作也不怎么忙,算是965的程度,平时也没什么加班之类的,但我每次回到住所之后就只会躺在床上看看视频和打游戏(视觉小说)而已,而且经常就玩到很晚,导致我晚上睡觉的时间还很短,可能也就6个小时多。也就是说我平时我晚上玩的时间可能就要7个小时多了。另外这对我的影响还是挺大的,最近我在玩osu!mania,前段时间我打的水平应该算越来越好吧,但是最近脑子不太好使了,打的效果越来越差了,还有最近幻视(看错字)的情况比之前发生的概率高了不少,还挺令我头疼的…… + 不过这可能和我未来的打算差不多,我本来就想在赚够我一个人一辈子花的钱之后就不再继续工作了,不过要是到那个时候我还是像现在这样黑白颠倒,不能好好吃饭的话可能一辈子也花不完我赚的那些钱🤣。 + 不过总的来说可能就是因为我没啥照顾自己的能力吧,所以说明明是挺不错的环境但是过的就像那些997的人一样🥲……像这种问题还是应该考虑解决一下才行。 + 至于在2023年发生的事情倒是还挺多的,令人印象最深刻的大概就是AI了吧,自从ChatGPT出了之后各行各业都开始搞LLM了,而且正是因为LLaMA这种东西的出现,国内的AI才会五花八门吧,只是LLM对我的影响可能还是不太大,后来发现大多数问题我自己就能解决,我解决不了的问题问它也没法解决,而且需要我写文案的时候很少,大多数情况并不需要生成一堆废话。 + +# 未来的打算 + 就和上面提的一样,我的目标就是赚够我一个人一辈子花的钱,所以接下来的日子很可能会是一成不变的,工作日上班,下班了玩电脑,休息日睡觉,节假日回家了🤣,而且未来的10年里很可能都是这样,没有更多的计划了。 + 但是看环境我猜应该会比往常有更多不可预料的情况吧,最近在这个世界上各种各样的事情越来越多了,我想接下来的一年里可能会有更多情况发生,说不定就是世界末日呢😆,至于会不会影响到我可能也只能到时候才知道了吧,不过对我来说最好还是别发生对普通人影响特别大的事情,比如手头的钱全变成废纸啥的,如果真出现那种情况,最好能提前发现然后全部转成黄金或者USDT之类的最好吧,如果没有这样做的话……反正大家的起点可能就差不多了吧,不知道到时候会发生什么样的事情。 + +# 总结 + 总的来说,过去一年里倒是没那么差,至于未来会更差还是更好也很难说,至于过去的一年里到底发生了什么我也记不太清了,现在的我只能说一些没什么营养的废话填充这篇文章了🤣。 \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..4c63f64 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "name": "mayx-blog", + "version": "1.0.0", + "scripts": { + "build": "bash deploy.sh" + } +} \ No newline at end of file From 8f7d02697dce507ff6b34fef41cf4d9e43124a52 Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 1 Jan 2024 10:53:46 +0000 Subject: [PATCH 013/244] Update 5 files - /card.html - /llama.html - /index.html - /Live2dHistoire/live2d/js/message.js - /js/main.js --- Live2dHistoire/live2d/js/message.js | 2 +- card.html | 18 -- index.html | 2 +- js/main.js | 2 +- llama.html | 385 ++++++++++++++++++++++++++++ 5 files changed, 388 insertions(+), 21 deletions(-) delete mode 100644 card.html create mode 100644 llama.html diff --git a/Live2dHistoire/live2d/js/message.js b/Live2dHistoire/live2d/js/message.js index 5a1ae5a..ca6cf11 100644 --- a/Live2dHistoire/live2d/js/message.js +++ b/Live2dHistoire/live2d/js/message.js @@ -287,7 +287,7 @@ if(!norunFlag){ showMessage('思考中~', 0); $.ajax({ type: 'POST', - url: "https://turing-api.mayx.eu.org/", + url: talkAPI, data: { "info": info_, "userId": userid_ diff --git a/card.html b/card.html deleted file mode 100644 index 45d95f9..0000000 --- a/card.html +++ /dev/null @@ -1,18 +0,0 @@ -抽卡 - -

您抽到了:


- - diff --git a/index.html b/index.html index 718494e..22851e6 100644 --- a/index.html +++ b/index.html @@ -58,7 +58,7 @@ title: 首页 - 我的文章 Pixiv图片索引API
- 抽卡 - 由广树大佬提供卡牌
+ Cloudflare LLaMA 2
留言板
diff --git a/js/main.js b/js/main.js index 329b132..c14a457 100644 --- a/js/main.js +++ b/js/main.js @@ -54,4 +54,4 @@ if (daysold > 90) { } var message_Path = '/Live2dHistoire/live2d/'; -var talkAPI = auxiliaryHost+"/talk.php"; +var talkAPI = "https://turing-api.mayx.eu.org/"; diff --git a/llama.html b/llama.html new file mode 100644 index 0000000..f3e5a69 --- /dev/null +++ b/llama.html @@ -0,0 +1,385 @@ + + + + + Cloudflare AI + + + + + + + + + + + + + +

Cloudflare AI

+ +
+
Hey there, how can i assist you?
+
+
+ + +
+ + + + + \ No newline at end of file From d74fe7b4b8dc7142fe7cff4202df57074b077bbd Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 1 Jan 2024 10:54:46 +0000 Subject: [PATCH 014/244] Update file index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 22851e6..c2557f1 100644 --- a/index.html +++ b/index.html @@ -58,7 +58,7 @@ title: 首页 - 我的文章 Pixiv图片索引API
- Cloudflare LLaMA 2
+ Cloudflare LLaMA 2
留言板
From 74cb7d028c5e1a908defbc9f60b016429b5bf6da Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 20 Jan 2024 11:01:55 +0000 Subject: [PATCH 015/244] Update 4 files - /llama.html - /_posts/2024-01-20-renpy.md - /index.html - /proxylist.md --- _posts/2024-01-20-renpy.md | 25 +++ index.html | 2 - llama.html | 385 ------------------------------------- proxylist.md | 2 - 4 files changed, 25 insertions(+), 389 deletions(-) create mode 100644 _posts/2024-01-20-renpy.md delete mode 100644 llama.html diff --git a/_posts/2024-01-20-renpy.md b/_posts/2024-01-20-renpy.md new file mode 100644 index 0000000..c8c09ab --- /dev/null +++ b/_posts/2024-01-20-renpy.md @@ -0,0 +1,25 @@ +--- +layout: post +title: 如何在macOS上玩基于Ren'Py的视觉小说 +tags: [Apple, macOS, 视觉小说] +--- + + 跨平台的游戏移植起来就是简单啊 + +# 起因 + 最近我在玩[Winged Cloud](https://store.steampowered.com/developer/WingedCloud/)出的视觉小说,他们家出的视觉小说画风都很不错,比很多其他同行画的好看,另外长度一般都很短,大概1-2个小时就能看完,很适合下班之后闲了看一部,不过我现在已经换了MacBook,要怎么玩呢?他们家的视觉小说基本上都是用的Ren'Py引擎开发的。Ren'Py引擎的游戏本身其实原生就是跨平台的,但是也许是因为我是直接从互联网上下载的,macOS会有些验证之类的?直接运行.app结尾的文件是没办法打开游戏的,双击会显示应用程序无法打开……那该怎么运行呢? + +# 玩法研究 +## 使用iOS版的RenPyViewer + 不过看看之前[我在MacOS上玩游戏的经验](/2023/10/21/game.html),对于Apple芯片的Mac来说,可以下载[RenPyViewer](https://apps.apple.com/us/app/renpyviewer/id1547796767)来玩。只是经过我的测试发现,RenPyViewer能玩的游戏很有限,因为它内置的Ren'Py引擎版本是7.5.3的,如果游戏用的Ren'Py引擎和这个版本相差不大,或者没有用到新版的特性之类的倒是能正常运行,我试了一下Sakura MMO系列、Sakura Gamer系列等都能正常运行,但只要运行游戏Ren'Py的版本过高或者过低的游戏都会报错,尤其像新出的基本上都是8.0以上的版本了,Python的版本也从2换成3了,显然用RenPyViewer肯定是没法运行的。 +## 使用Intel macOS版的RenPyViewer + 其实在我发现iOS版的RenpyViewer不能运行一部分Ren'Py游戏之后,我又去搜了一下,在知乎上找到了iOS版的RenPyViewer作者发的文章,介绍了[macOS如何游玩Ren'Py引擎游戏](https://zhuanlan.zhihu.com/p/477696534),其中包含了他为macOS做的RenPyViewer,不过我下载看了一下是Intel版的……不过也许这个里面用的引擎更新一点,一部分iOS版不能玩的这个版本就可以玩。 +## 使用终端运行 + 但毕竟前面两个方法内置的引擎版本是固定的,能玩的游戏也很少,看来得想个通用的办法,毕竟Ren'Py游戏在发行的时候是支持macOS的啊。所以玩又看了看,Ren'Py开发的游戏发行之后一般在游戏文件夹里有一个.sh的文件,看起来应该是给Linux系统运行使用的,但是macOS也可以运行.sh的文件啊,所以我就直接在终端运行了它,结果macOS和Linux不一样的地方是所有从网上下载的可执行文件都必须签名,不然就会报移到废纸篓之类的错,关于这个问题,我看网上说的好像是执行`xattr -r -d com.apple.quarantine `就可以,不过后来我也忘了是出什么问题,最后是手动一个一个给每个可执行文件加的权限,最终倒是也运行起来了。 +## 手动修改.app文件 + 不过每次运行要是用终端那不是很麻烦嘛,另外既然游戏里面明明有.app的文件,为什么会运行不了呢?后来我看了看,发现Contents/MacOS文件夹下的文件并没有可执行权限,我猜可能是和这个有关系?加了可执行权限之后倒是没有报应用程序无法打开的错了,但是还是不能运行,点开之后在Dock栏跳了几下就消失了……然后我就去看了下那个可执行文件,发现就是一个Shell脚本(后面的版本换成可执行文件了)里面定义了几个ROOT变量,一个是和脚本同级的目录,一个是和.app同级的目录,还有一个是Contents/Resources/autorun目录,这么看来正常情况下因为游戏是跨平台的,游戏肯定不会在.app里面,在外面的话……看现在macOS权限管的这么严格,让它读取.app外面的文件估计不太行,肯定只能读取.app里面的文件,至于Intel macOS版的RenPyViewer我看了一下好像原理差不多,是把游戏目录用软链接映射过去的,所以才能在不直接获取.app外面的文件下运行。之后我又参考了一下其他直接在macOS发行的Ren'Py游戏,感觉也差不多。所以解决方法也很简单,要么把游戏文件放到Contents/Resources/autorun目录下,要么做个软链接放过去,我觉得单个.app管理起来会方便一些,所以就直接把游戏文件全部移动进去了。试了一下,总算可以正常运行了。而且多试了几个,基本上都没有问题。 + 但有些Ren'Py游戏连.app都没提供,我不知道SDK默认生成分发版的时候会不会包含macOS上用的.app文件,不过也有可能是发行的时候只针对Windows所以删掉了,对于一些非官方汉化版很有可能是汉化的人给删掉了。对于这种情况,可以先搞清楚这个游戏使用的Ren'Py版本,然后去Ren'Py官网下载对应版本的SDK,把SDK中的renpy.app复制出来,然后按照上面的方法把游戏拷进去就可以正常运行了。 + 另外macOS上还有一些坑,比如说Windows的文件名是不区分大小写的,但是macOS是区分的,有时候他们写脚本的时候文件名和程序里可能有些比如CG之类的大小写不一致,结果图片不能正常加载,这种情况就只能用unrpa解包然后把对应的图片名改成正确的才能运行了,当然Ren'Py提供了忽略错误的功能,但是不知道为什么只有英文模式下有,中文下就没有……这种情况还得先切换到英文才行。 + +# 总结 + 总的来看,以后如果想在macOS上玩Ren'Py游戏,优先应该用游戏自带的.app最好,把Contents/MacOS下的文件添加可执行权限,然后把文件全部移动到Contents/Resources/autorun下。不过旧版的Ren'Py基本上都是只有x86_64的可执行文件,新的才有两种都支持的,如果是用的Apple芯片的Mac,最好先看看可执行文件是不是通用的,如果不是优先应该先试试iOS版的RenPyViewer,毕竟原生运行肯定要更省电一些,如果不能运行再用上面的办法。 \ No newline at end of file diff --git a/index.html b/index.html index c2557f1..385fd6f 100644 --- a/index.html +++ b/index.html @@ -58,8 +58,6 @@ title: 首页 - 我的文章 Pixiv图片索引API
- Cloudflare LLaMA 2
- 留言板
Links
diff --git a/llama.html b/llama.html deleted file mode 100644 index f3e5a69..0000000 --- a/llama.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - - Cloudflare AI - - - - - - - - - - - - - -

Cloudflare AI

- -
-
Hey there, how can i assist you?
-
-
- - -
- - - - - \ No newline at end of file diff --git a/proxylist.md b/proxylist.md index a5c1c5e..60eb8c2 100644 --- a/proxylist.md +++ b/proxylist.md @@ -35,5 +35,3 @@ title: 代理列表 - - - -- -- From 2aad4be863a77b31f679c8871b7884c0a293b758 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 3 Feb 2024 14:04:27 +0000 Subject: [PATCH 016/244] Update 2 files - /_posts/2024-02-03-1panel.md - /_posts/2024-01-20-renpy.md --- _posts/2024-01-20-renpy.md | 2 +- _posts/2024-02-03-1panel.md | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 _posts/2024-02-03-1panel.md diff --git a/_posts/2024-01-20-renpy.md b/_posts/2024-01-20-renpy.md index c8c09ab..5d7c49c 100644 --- a/_posts/2024-01-20-renpy.md +++ b/_posts/2024-01-20-renpy.md @@ -15,7 +15,7 @@ tags: [Apple, macOS, 视觉小说] ## 使用Intel macOS版的RenPyViewer 其实在我发现iOS版的RenpyViewer不能运行一部分Ren'Py游戏之后,我又去搜了一下,在知乎上找到了iOS版的RenPyViewer作者发的文章,介绍了[macOS如何游玩Ren'Py引擎游戏](https://zhuanlan.zhihu.com/p/477696534),其中包含了他为macOS做的RenPyViewer,不过我下载看了一下是Intel版的……不过也许这个里面用的引擎更新一点,一部分iOS版不能玩的这个版本就可以玩。 ## 使用终端运行 - 但毕竟前面两个方法内置的引擎版本是固定的,能玩的游戏也很少,看来得想个通用的办法,毕竟Ren'Py游戏在发行的时候是支持macOS的啊。所以玩又看了看,Ren'Py开发的游戏发行之后一般在游戏文件夹里有一个.sh的文件,看起来应该是给Linux系统运行使用的,但是macOS也可以运行.sh的文件啊,所以我就直接在终端运行了它,结果macOS和Linux不一样的地方是所有从网上下载的可执行文件都必须签名,不然就会报移到废纸篓之类的错,关于这个问题,我看网上说的好像是执行`xattr -r -d com.apple.quarantine `就可以,不过后来我也忘了是出什么问题,最后是手动一个一个给每个可执行文件加的权限,最终倒是也运行起来了。 + 但毕竟前面两个方法内置的引擎版本是固定的,能玩的游戏也很少,看来得想个通用的办法,毕竟Ren'Py游戏在发行的时候是支持macOS的啊。所以我又看了看,Ren'Py开发的游戏发行之后一般在游戏文件夹里有一个.sh的文件,看起来应该是给Linux系统运行使用的,但是macOS也可以运行.sh的文件啊,所以我就直接在终端运行了它,结果macOS和Linux不一样的地方是所有从网上下载的可执行文件都必须签名,不然就会报移到废纸篓之类的错,关于这个问题,我看网上说的好像是执行`xattr -r -d com.apple.quarantine `就可以,不过后来我也忘了是出什么问题,最后是手动一个一个给每个可执行文件加的权限,最终倒是也运行起来了。 ## 手动修改.app文件 不过每次运行要是用终端那不是很麻烦嘛,另外既然游戏里面明明有.app的文件,为什么会运行不了呢?后来我看了看,发现Contents/MacOS文件夹下的文件并没有可执行权限,我猜可能是和这个有关系?加了可执行权限之后倒是没有报应用程序无法打开的错了,但是还是不能运行,点开之后在Dock栏跳了几下就消失了……然后我就去看了下那个可执行文件,发现就是一个Shell脚本(后面的版本换成可执行文件了)里面定义了几个ROOT变量,一个是和脚本同级的目录,一个是和.app同级的目录,还有一个是Contents/Resources/autorun目录,这么看来正常情况下因为游戏是跨平台的,游戏肯定不会在.app里面,在外面的话……看现在macOS权限管的这么严格,让它读取.app外面的文件估计不太行,肯定只能读取.app里面的文件,至于Intel macOS版的RenPyViewer我看了一下好像原理差不多,是把游戏目录用软链接映射过去的,所以才能在不直接获取.app外面的文件下运行。之后我又参考了一下其他直接在macOS发行的Ren'Py游戏,感觉也差不多。所以解决方法也很简单,要么把游戏文件放到Contents/Resources/autorun目录下,要么做个软链接放过去,我觉得单个.app管理起来会方便一些,所以就直接把游戏文件全部移动进去了。试了一下,总算可以正常运行了。而且多试了几个,基本上都没有问题。 但有些Ren'Py游戏连.app都没提供,我不知道SDK默认生成分发版的时候会不会包含macOS上用的.app文件,不过也有可能是发行的时候只针对Windows所以删掉了,对于一些非官方汉化版很有可能是汉化的人给删掉了。对于这种情况,可以先搞清楚这个游戏使用的Ren'Py版本,然后去Ren'Py官网下载对应版本的SDK,把SDK中的renpy.app复制出来,然后按照上面的方法把游戏拷进去就可以正常运行了。 diff --git a/_posts/2024-02-03-1panel.md b/_posts/2024-02-03-1panel.md new file mode 100644 index 0000000..66a2f30 --- /dev/null +++ b/_posts/2024-02-03-1panel.md @@ -0,0 +1,23 @@ +--- +layout: post +title: 如何离线安装1Panel +tags: [离线, 1Panel] +--- + + Go写的程序感觉离线使用还挺方便的 + +# 起因 + 为了更好的管理服务器,我之前用过几种面板,比如宝塔,小皮,appnode还有[1Panel](https://github.com/1Panel-dev/1Panel)之类的,之所以用面板主要还是觉得这种用起来方便一些。有些脑子不合适的人看不起使用面板的人,他们可能用了比如软件包安装,或者源码编译、容器等等,结果一顿操作猛如虎,结果配置还是安装默认的,连调优都没做🤣。 + 总之最近正好需要在不能连接互联网的地方安装LEMP的环境,虽然现在的面板很多,但是似乎很少有面板支持离线安装。宝塔好像有付费的离线安装服务,但是我首先不信任宝塔,另外怎么可能给他们付钱呢😆?1Panel虽然官方不支持离线安装,但是社区中有离线安装的方法,不过好像不能使用网站管理的功能……当然经过我的测试,其实是有办法可以使用网站管理的功能,所以分享一下方法。 + +# 离线安装1Panel的方法 + 一般想离线安装的话搜到的文章应该就是[这篇文章](https://bbs.fit2cloud.com/t/topic/386)了吧,看起来操作有一点点复杂,不过评论里有个人整了个可以离线安装的[项目](https://github.com/wojiushixiaobai/1Panel-installer),使用起来非常简单,连docker也一起安装了。只是使用的时候稍微有一点点坑,就是它的“--install-dir”参数默认是“/opt/1panel”,但是安装的时候会在这个目录里再建一个1panel文件夹,所以在使用的时候最好手动把参数设置为“--install-dir /opt”。 + 安装没什么问题,不过应用商店是空的,什么软件都安装不了,我在社区论坛里找了一下,好像可以把在互联网端1Panel实例中“/opt/1panel/resource/apps/remote”中的文件拷到离线设备中的“/opt/1panel/resource/apps/local”下,然后点更新就可以了,我试了一下确实可以,把镜像导出来再导入到离线设备,直接安装可能会报错,但是重建一下容器就能正常启动了。虽然容器是启动了,但是面板好像没识别到,还是不能管理,而且应用的文件被放在了“/opt/1panel/apps/local”目录下,就算能识别到,文件路径也是错的。看来得让面板认为导入的程序不是本地安装的,而是在线安装的。 + +# 离线安装1Panel中应用的方法 + 我在网上怎么搜,都没有找到现成的解决方法,看来只能我自己研究了😂。我找了一下,面板安装目录下有一个“/opt/1panel/db/1Panel.db”文件,应该是面板的数据库,我用sqlite3客户端打开看了一下,里面的apps表中可以看到应用被导入了,但是key在前面都被加了local,比如openresty变成了localopenresty,我对比了一下互联网端的数据库,除了这一处外,还有resource字段的内容也从remote变成了local。既然是这里有不一样的地方那就把它改成一样的呗,另外这里的字段名既然叫resource,那么肯定和那个目录也有关系,所以就得把“/opt/1panel/resource/apps/local”文件夹下的内容再全部移动到“/opt/1panel/resource/apps/remote”中,把数据库上传然后重启,离线环境中的1Panel也能正常识别了,而且安装后网站标签页也能正常创建网站之类的操作了。 + Nginx(openresty)和MySQL这样安装都没啥问题,但是PHP出现了点问题,因为1Panel的PHP会在线下载扩展来构建镜像的,不是直接使用镜像创建的容器,所以安装会报错。不过既然能看到数据库,我发现有个runtimes表记录了PHP的状态,那么我把状态改成normal就可以了吧,试了一下还真行,改完上传然后重新导入容器,PHP也正常了。另外需要注意的是从互联网端导出的镜像名字和版本必须和离线端一样,不然可能识别不到,至于扩展啥的在互联网端选择好就可以了,离线端不需要修改。 + 所有操作完成之后试了试创建网站以及和PHP的连接之类的都可以正常使用了,就可以在内网环境下完全发挥1Panel的能力了。 + +# 感想 + 无论是Docker还是1Panel,能这么简单的在离线环境下安装我想可能是因为它是Go写的程序吧,能无依赖,静态编译的程序在没网的情况下还是方便啊……另外就是Docker果然也是离线使用的利器,想安什么在互联网准备好直接拿到离线端就能用,真是方便啊。 \ No newline at end of file From afe8b951157ca3590da9cc31a1e1cb9537b72ace Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 24 Feb 2024 15:53:16 +0000 Subject: [PATCH 017/244] Update 4 files - /proxylist.md - /images/17966333.png - /_config.yml - /_posts/2024-02-24-luckfox.md --- _config.yml | 2 +- _posts/2024-02-24-luckfox.md | 24 ++++++++++++++++++++++++ images/17966333.png | Bin 0 -> 214761 bytes proxylist.md | 3 +-- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 _posts/2024-02-24-luckfox.md create mode 100644 images/17966333.png diff --git a/_config.yml b/_config.yml index 7753887..e57eec4 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,6 @@ theme: jekyll-theme-minimal title: Mayx的博客 -logo: https://avatars0.githubusercontent.com/u/17966333 +logo: /images/17966333.png author: mayx description: Mayx's Home Page timezone: Asia/Shanghai diff --git a/_posts/2024-02-24-luckfox.md b/_posts/2024-02-24-luckfox.md new file mode 100644 index 0000000..8e84223 --- /dev/null +++ b/_posts/2024-02-24-luckfox.md @@ -0,0 +1,24 @@ +--- +layout: post +title: Luckfox Pico Plus使用体验 +tags: [开发板, 树莓派] +--- + + 开发板还是越小越好啊 + +# 起因 + 前段时间,银行送了我一张满50减50的淘宝不限品类优惠券,但是我一时半会没想好买什么。不知道怎么的就想起在Bilibili上看到的微型开发板Luckfox Pico系列,当时看了视频觉得挺有意思的,这次既然有机会了就可以买一个了吧……不过有这钱去买箱牛奶不好吗🤣。 + 最终买的Luckfox Pico Plus开发板,当时的价格是52CNY,加了8CNY的运费,然后用券抵完就是10CNY了。价格看上去挺不错的,不过相比之下还是不如随身WiFi便宜,那个正常买好像也才10CNY,而且整体性能也要比这个好很多,还能用WiFi联网……不过既然买了就玩玩呗,看起来也挺有意思的。 + +# 使用体验 + 从外观来看,整体大小只有一根食指大,因为选了带RJ45接口的板子所以其实不算特别小,而且背面甚至没有焊元件,其实它的SOC RV1103只有不到小拇指指甲盖的大小,很难不相信它其实还能做的更小。 +## 安装系统 + 刚买来的时候里面有预装的测试系统,不过测试系统几乎把里面的空间都占满了,肯定是不能用的,我去看了看[官方的Wiki](https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-quick-start),官方有提供编译好的BusyBOX、Ubuntu、buildroot以及Alpine Linux,也有可以自己编译的SDK。对我来说我也不愿意整麻烦的事情,所以肯定会选编译好的,至于系统也肯定要有软件包管理器的,另外因为这个开发板只有64MiB的内存和128MiB的存储(虽然可以插TF卡,但是内存还是没法加),系统也不能太大,所以就只有Alpine Linux可以选了。我之前[在虚拟机里测试过Alpine Linux](/2022/03/12/alpine.html),体验还是挺不错的。 + 安装方法也很简单,[官网的Wiki](https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-Alpine-Linux-1)有详细的说明。不过有一些不太一样的地方,我没有USB转UART串口模块,我有的只是树莓派。所以烧录完系统之后的改密码以及配置网络的过程就得用树莓派来做了,其实这体现了一下树莓派的作用,至少那堆GPIO接口不是当摆设的🤣。用法的话就是首先刷一个树莓派的官方系统到树莓派上,然后在配置里打开UART并关掉树莓派的串口登录,按官网的图接三根线,只要是导线就行,对树莓派来说应该是第8和第10脚分别是RX和TX,第6脚有一个地线,依次接到开发板上,在终端里安装screen,使用`screen /dev/serial0 115200`,就可以登录开发板的终端了,如果连接有问题可能是RX和TX接反了,反过来重新插一下就行。之后改密码以及配置网络就很简单,配置好之后连上网线就可以正常使用了。 + 不过这个系统有个缺陷,没有配置TF卡,这还是挺重要的,回头有时间可能还是得编译个能使用TF卡的Alpine Linux,或者看看官方愿不愿意编译一个? +## 使用软件 + 安装好系统之后就可以用SSH连接了。首先试了一下安装软件,Alpine Linux的软件包管理器apk用法和apt的用法差不多,而且源里的软件也非常多,安装了个Python3试了一下,没有任何问题,安装好pip之后安装python包也没有问题,这样就可以运行我用python写的一些定时任务了。另外我又下了一个[go-cqhttp](https://github.com/Mrs4s/go-cqhttp)搭了个机器人试了一下,居然也能正常运行,看来64MiB的内存还可以啊,跑些软件还是绰绰有余的,这么看来的话就可以替代掉我的树莓派了,反正我的树莓派平时除了网口其他的口都没用,运行些定时任务或者QQ机器人又觉得利用的性能太少了,而且很明显的是这个东西显然比树莓派的能耗要小的多,挂在家里挺合适的,不过缺陷可能就是如果哪天我想整个[电台](/2022/03/27/radio.html),树莓派的GPIO接口还能派上用场,这个Luckfox Pico Plus的GPIO可能除了最开始装系统的时候用了一下,之后就再没有用了。 + 另外作为在家里装的开发板,内网穿透也是需要的,但是装了个go-cqhttp之后内存就剩下30MiB了,还要考虑定时任务运行时也要用掉一些内存,用frp肯定不太合适,但是用ssh的话又容易断,我想了一下干脆折中一下用autossh吧,如果断了也能自动重连。 + +# 感想 + 感觉作为开发板,Luckfox Pico Plus相比树莓派来说用途差不多,而树莓派的定位却不太准确,又想当开发板,又想当普通PC,结果作为开发板价格有点贵,尺寸有点大,功耗也有点高;作为PC性能过差,啥也干不了;作为NAS接硬盘也接不了几块,才两个USB3.0口,还要另外接供电,属实是比上不足,比下有余。这款产品我倒是觉得挺不错的,主要是颜值比较吸引我😆,其实还有和这个一样芯片的另外一个开发板,更便宜还带WiFi模块,但是相比之下还是这个好看,所以如果想整开发板我觉得Luckfox Pico Plus比树莓派更合适。 \ No newline at end of file diff --git a/images/17966333.png b/images/17966333.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0df7065a5913c1dda061469608868f07f79402 GIT binary patch literal 214761 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

@Y3 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%0AJ>{i7iyw~GKsX7~N7KT`5+}USd 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

|2!Ue-~rmd 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𕩄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%0A@4(nZ$fiy9N&NX8Em#xqmSDUpT2zL$dM;+nib{) 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 TOE_`e00000NkvXXu0mjfy=BL8 literal 0 HcmV?d00001 diff --git a/proxylist.md b/proxylist.md index 60eb8c2..daeb27e 100644 --- a/proxylist.md +++ b/proxylist.md @@ -12,8 +12,6 @@ title: 代理列表 - - - -- -- - # 镜像列表 @@ -22,6 +20,7 @@ title: 代理列表 - - - +- - - - From 8a51f7a9424e0cb569b44a4e4881f8e1c22ed05b Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 24 Feb 2024 15:58:24 +0000 Subject: [PATCH 018/244] Update 3 files - /images/17966333.png - /_config.yml - /_layouts/default.html --- _config.yml | 2 +- _layouts/default.html | 2 +- images/17966333.png | Bin 214761 -> 0 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 images/17966333.png diff --git a/_config.yml b/_config.yml index e57eec4..7753887 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,6 @@ theme: jekyll-theme-minimal title: Mayx的博客 -logo: /images/17966333.png +logo: https://avatars0.githubusercontent.com/u/17966333 author: mayx description: Mayx's Home Page timezone: Asia/Shanghai diff --git a/_layouts/default.html b/_layouts/default.html index a0fe091..f57c109 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -75,7 +75,7 @@

{{ site.title | default: site.github.repository_name }}

{% if site.logo %} - Logo + Logo {% endif %}

{{ site.description | default: site.github.project_tagline }}

diff --git a/images/17966333.png b/images/17966333.png deleted file mode 100644 index 7a0df7065a5913c1dda061469608868f07f79402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214761 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

@Y3 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%0AJ>{i7iyw~GKsX7~N7KT`5+}USd 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

|2!Ue-~rmd ze)OI1Tg_Z$RPVj-K8iMJ&ucbyNv153wWYlc9cKy1Z@UpbP0QKNjqh`H9*Hjrhm`O~nBT>y> zXV=h5nIRBBoatUr?J4GDc;nH4QbeatEKqM%n&qT#>8m*xM$V?~o}FHV)GniDlP<2I zWN?@lY2@$`3vPVfKHSC|-CpLk~TK&df9c zvot4bhW==1vx5{!80Is#%vN{|k{dIm5wcXR&oHtSp+%;n!O+*D0x~abipB^z5x2G; zT1lrUOGJTBN+gU=L0O_%3lMse+PbRcthY7P9>k1kLJM(AQuEOor!W9O^+>Z=Majo! z`f>BX97S>(mDyq32$T&9afC*7^Fa|UBxRtqYD7u(CS`2Y#;HD&*mh#QF@-^G0s-rK z`*b|Aw0xDiP@Y?ZTavQBM!^pH2^qw>xj8a`ZVE{q4{^Qf}?yj4_QjRBZfa6(d<^_?+b)>atSEC!q^%4UbHaLoPn)PLbz>^&4K^BN zj7TjbP3(;%p=pn~U&kp5n1$+!CbL|a>ltZu*c^FS_uO+2MYrm;Y9guQSFdfh>g1(e zyM7g`*WSeT&L*N-fSK7T&6g`e3sxbn!bE59D#6^H=xpcugA@5n1F95 znwV&>FuI@gUujUxpxSX+XoEy)^&mnRG*F*zV`f@kf90I)?d)QIua8c%W!qWu3@CFI zsVHYgm|C$UtvofziK%IInNeIK%@g!TeKf-wsjT#eF_NMr{#@mimsBGuwALN*{pJu} zKqy!OBP*jRJXqpaWiU+|%8x>LL4Z8nx940|Xc*tg;{9nGoN>VzmTxyG76`6xdLQ;{ zRvp!nSJl~2#!#)B=bwKbKm6ej@#?Fu64}5PzxYKmhG!mn2)(OUG3fWvI&lJ*j6qcq zRMn_*O8wx zUQ{21u6d0{3Ei;RkPMSnCPi+gN%4&hCPgFJxNgXX6O~kg`usCz&e5bgapD9`oP&b{ zTgRl7V3LqW#=MCt5}KZ#rb){EgPbCk(z70+YcyTvAXG^fyu*M8x32kq5iY#ZMs`$+ z2+nnOue<9waSEO5C!7LT&Xf9g6zCcWUmlCZGoBvTP&61zqL4cBtk-lMI!R-C-P+n3 zRu-4ZIpZE+?Xc-Id10s!EpkuD$#b&*hSlC9=O~J-@_aR#JdU^f(>6E@;Htdvexde( z)MOH>*YCrA-FS@q&JTm3)K6mh84mH%OD|Cd?CjaIc=+LmwZ`i5GF|u4+8R1jQ&@fT zP0He2He?~6{p@Ec!xGi&w62DO0qw8qzG&d1w52uPx1|F}bTc#3(Gd0xqMWh|p7|LV z`cQa8s4h!MV)wUlmygOkxTO7JLT{AU-K||;9ZfRY7Kc%?6TR8x@j*XKZO3&96&*C2 zO+uKeo73rZXd@hr2DVR5ZDfO?PLZmMNBW4PgwnCo!HiV~QJUg;3nisK2IqLJ1C2Y!>>vwQcSuET-=8qgt8h7Hn z<8jkIw8^Lum6|3?3wgf4)YJ?)7Rtexo139lAi9Tylxu1IyKa}RO&CUWZhqt&?Y#{B z{(!EfT3E}=ConrZhwY6`dL0W~XK9YYD@l)3U!Rfob^~ol5rF9K8qJV;d?7=;`07iT z>U42!?K+lMW-%D12Ars@y}JIIn8xrD8glOtxbB_u0J3y3!@k5mlk4S9AbBOohm zH6QkrqA(5WsBHec)^3Dq{IFlQ>bQ}!y0y7U4&XiK&(nhg0lvO|yN$~iFXG%?cVS_E z9^d@tH%TP@*MIHT2=F!-4vF!KN*lEZ?RssTB?Bz606VO_FSFx#>Cz=qBjN}wSL>uG zsimt>!GkP_c27l$MVb*9-IqS~WrNt@_yi{-OYW2uz6M){Q4RS)55qwZ3sY0*Hf!)@ zZd;aoTW=hLJ#WS7qT0GIFic0->jQIhH4FzaJi<1N+u%TZT^+u6OnEQ1#BN%aL-@g9 zU{fwP;zabk!lLJ>7f+U&&A!nlL%X%JZEBEO-8?9@m*aaO{k`7Q#;M;wu=HEp+{^uT zy4L8~o=@dnoj!e<(iZA><%umVE!l;weyYt~8M@8QO==V&xmsNrMdXp`&U$|$PquC8;p-JyG<<^uQZs?X07t*Oej8_5hjxrq=X zZ-QNF?fMqY!(o4bvn!`)&Jc<)>uKeL!f*ixR%t`Ln@rQ?*)0bDZ9&f*@RvsXD=rN>v>7{9BKk zp=95B)Au|dwVG*{k%A&X^(YHrbmu&xFC2{$b6kP|SNfU=sx4CVA9|?Qprwi+FzAnv zr3G4z1|s6>4Jd7|3?}KMjz(JbqR5fS7=LC{I*l6gFeDyK<@&}1EGXdnHF$ohYZ_7;cvFP~@&tLFP)(guRkAz;cEas?-0krm z4N|!=Ov663;JF6_&hdN<4tkhgT*SuJtGIUcD!t~y`Fqf;)#<%nE!3Q}Dgsnas3AS~ zN)yodx}6VFS{X65*QtH&JKy;ZR#&fKI2@T?YJE&P5KsjA}|7Tiol}#&q@G`NajJS5{gA07g+V5|?ix zOb;Y^N5NPKnj=iLF;lOnQO8i9tBj!f9Azli*48MEtRAbYt9bqO*GV@{9rN7W92rCY zUiIE4^(pDW9*~NJdIvl9{8YrHk7FFY=woDYX)$q5oMu(V1g1SlIDM=t;^Zh)IC_F^ z9nIxFJa)?VRwh9ZOdN~42FfvkF&qTK84XM=dNcuG;B>S)cNLxU96H$BCEYM{a> z6!5iB?@8hTN|~Z4wRfExA#6VYiFnV>&eD7KclXH9KKtym`07``ihJ%oi+k_71D*M4 z`uuS(nHDjJ&>#n4KxN!7Ja%ei<@fQpUBkRR-mAg=kFGP#djkUw5k<6?)c&@(s2O`K zNHYu!Vs)%81;Z814!v48Fj1%ax7r)O|NZY%k0+}FajVxDgj2pNiaLB=?38k8i@)!< zgKO$K6FA<-8H>VocLuZ`yN1biH%_&=1!6uB4)0wMh~4n>($MGWv;s$%TU$DnraTSh z;i%|>dl@x9rA`3`QD}$-LR) zxT{yMlA&B*U#APFHeF=^^u|B3d3-tthl7^uq;M$rl)+Pm!1IJ<{?X2ZzFGTwLrapt zf2*R3;S|-2iky@SV&eDVJ!DDAGUX^~;s`!I6+x==r+Y2+Jsu23v<&-wT~mfJv{79z zP!)kHXF%O^<-^9)(k(pdd%{2<%SZ4sffOU8GDDuHlnC-YAkT7i zrl;usX=3(1e*DtQ*y-(%m;A|xK0@K9J$}-I%R@YPpWs1GeZNn8r3yGso;*p<+irru2vnHHf9|uCxn9q*C@F*2 zZnZEwKab0=y@oG;`OA3jN6#4Imm2D|Cavu>&1u~#n=8wN%1s;`+U`mTqNx-&$XrQ! zrPICw-J-(8G*RFYcW%uXvEvTuX$7II$Tc)UMcC@PJyDM_4FV4*^*pw=AQCaPTA|%_-GntBJ>h|_qwZvECBRHM!TFA&rdi%h3# z3*+G?NseYylA%@iJ|1Zz397wptpmdmwG`cV-vvz1v?;BgCMv2g5K-pD&|;NFDA>T) zCEl8>;I^^6J>HAqmTg?z!Z=eEl4Gdmyqf=Nt+|0kmKos$i9@X`gk(0{zeyb9=_jAW zx4!i){P@Q|wv=~qn%h7qj>r9r`MV_7TCHKa5hepOk284Bg61%=tWqU)x)YBjGWrziDwGAWUuHeriii%H5!a-(i8RFBM9nw z4u+uznZl-+JRhdTDJHc6x@JX8QLN_|$VUmDdFfT`^%C^c6!)FKi;O0DmNG|H=#-Vn zOWnt7HWktbr7sFBHDeX_FW*Oez_-Uw@2KJ;+@IXRp!PepPb@Dl(|fqhhdEeXU<;Rp z0->{n@lZRU&p-DZzVxLp5vD`!Sqlpbv~P0jARmh~v~;vSJu$(Y1%rqX0)BjatDG0Q7u@qB3WL*3N1bjenAfn`n~qP7$59b)gu=4Ch_M{a z4LCd1d(}lxl5C>pmS@_ydB*T;ZSBzJ8#OdR`c!vD*Qe@QUWdI6J{}m>9Tlb8}O-xeNxDZ**>MPWOnVDIF7|XE~LqzDs=%F$0M)%LTWww3=P|?!CP| zYfy?}T#IASkox!H!n8)88BmZ_rVn+BmfK3)S}aHOT))*Q)R8?-e!hxM{z(k?yKI)g z7>d}ax3l&od7{SHb81`NQ+3YDaH{*Jt{=Df&~M4BpJKv#fklG*Bnq>!__dNnHnzd+|a^8ilr)o3YvfsNg+^m@X{V+?HaI~5` z=k7h8!5k(r4hDUkIC+vpVM+Wq%c!;}e2?V1POO~7bZ3g#@YVC`0`KqdQNCP<*ct^% z2BXj|8TCd)j}ehI>z0Cke-GKgI8tL2tU3|3QFD(ZBTsoEF-wJ-I1K7h|JD&~Yb`ENonXXw!rCw{p6Lr!( zZ8majZ}mt@XmxcJqd|$l^Wmu|t?*E0z~1%&n)NmU5mBA8ER{{upNG<Rr~ld&+FaE8KK03; z#o}BGNtt1=wT;=871V|Swl;UsYIPv}I^wj@&Oy09sW~d_U8MhRrbl{QJ;rx^h#MX6 z4ZL|zJFG6y%pL6b2zfMZU?Fn*y!&^rLIKBzB_~9@7Bpdv_5D{Yh_hgTQ4wt59Gz4{y;dE}#Lw*xfQUXaEZZfv5vvVyGWBbOQSIHCT@ zR-*=A3Q`JsdG#9p{h$6BfgjcWdv;|7?d}w1(c(1G3`5x-hQl6)d5WelFp@dV`@jz% z@(dB{QJRRcQ1?^>NUTbuGq3pHq8wxQrJh5>xCc=tn46kLBaDy^G*TVq4GgEK%vW(# zH%N{snZn5Pv00SZmOx{=fdjQq?~V}6sJDe^$vV~!4lsT8t~ah*Y73`T5mzFQd!Wsu>Z z*en5YF(!rQ2%L}AjnrJDFTEMk62QHhsH&g4MPaMy6{k67z#RSP4lO=RTKuzWaejx2pY^RhLLJvk-t;fAZh} z;dIURG%H6#t--gUHet>75dswHp4?U7_-#L9`T z@uZqtDJD*&G!YSp#I>SfCkdl)S$f4K0B{Yad%|oST~w;3f*R-WOGixFy?}0XY5yiY zYJmv?-Q=q_()IOqGMLPAqhB8wPTRt!uhlV);-0M`Sad7`>LV0J4=yhwZI% z00_+&+=w(fw$Wtwn~k+x5}uP9feqAnwU_ zBP3_di{9}i{D6%k^a_dVQ_m~AbuoIotjsYn4(Hs6Q_7=xlsS_?yra%Il%lH~rI4OJ z!VilhqxQKVKo}WO=R$LDOJvwsTcbY7`RQ3gbj!RT4Oy>{m|B>p_l^uTrE;jZH#SLB z`h{nn!^Ia~z{cuza(r3FklOxCOI;L%C^Bt3q^tI0YM8e=ZkW(8L!FPLT}u!<5Or~u z8q09xw^Sp`@rB|~JoFb1qN@A7=K3~71{CUg#q#pq#}klN|NF20<-ho!{`dd+w}U_W zqd)pLgs3w0M0JsOcXti(Kw+aeHcC2bnq;P75Ct2D+-X;#=uVclWkWjRp6n&LjsDzY zQ*FC&7v^vnn`0S+l5DhV06O}!#)|Qr(&X<|KdE=moHN%9xOK&?EpYTS=E9xqUseAu zDw_=s$)%$RR5;pvgac$5^F#_5!wS6hBTMc zjZC@5=}xY3vXNq_ujlAnRtKY;stcDR𕩄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%0A@4(nZ$fiy9N&NX8Em#xqmSDUpT2zL$dM;+nib{) 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 TOE_`e00000NkvXXu0mjfy=BL8 From efaaa3267441a1e23953bab7d8537f230ff658b8 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 24 Feb 2024 16:02:33 +0000 Subject: [PATCH 019/244] Update default.html --- _layouts/default.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/default.html b/_layouts/default.html index f57c109..734ad8f 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -75,7 +75,7 @@

{{ site.title | default: site.github.repository_name }}

{% if site.logo %} - Logo + Logo {% endif %}

{{ site.description | default: site.github.project_tagline }}

From c437b255f1729473876e3458e752a5196e9cf6ea Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 16 Mar 2024 13:17:54 +0000 Subject: [PATCH 020/244] Update file 2024-03-16-ssl-pinning.md --- _posts/2024-03-16-ssl-pinning.md | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 _posts/2024-03-16-ssl-pinning.md diff --git a/_posts/2024-03-16-ssl-pinning.md b/_posts/2024-03-16-ssl-pinning.md new file mode 100644 index 0000000..c63c780 --- /dev/null +++ b/_posts/2024-03-16-ssl-pinning.md @@ -0,0 +1,41 @@ +--- +layout: post +title: 如何用requests库验证证书 +tags: [Python, requests, ssl] +--- + + 用Python制作的程序怎么样? + +# 起因 + 之前在抓包某些APP的时候,可能会遇到即使信任了抓包软件的CA根证书也无法抓包的情况,听说之所以遇到这种情况是因为那些APP使用了“SSL Pinning”的技术,可以只信任代码中认为可以信任的证书。不过对于逆向之类的事情我并不擅长,这种问题我也不太会解决。但是不能解决问题我可以创造问题啊,Java的APP我不会写,但是我会用Python写,所以今天来看看怎么样用Python实现类似“SSL Pinning”的技术。 + +# 实现方案 + 真正的SSL Pinning似乎是通过预置网站所使用的根证书或者中间证书来实现的,这样的好处是即使证书到期换了证书也能继续验证。不过我觉得其实没必要这么麻烦,一般Python程序要连接的后端也没必要在浏览器中调用,大不了就自签一个证书,然后自己验证证书就好了,反正中间人攻击重新签的公钥证书的指纹肯定和原来网站公钥证书的指纹不一样,用这一点就可以判断有没有被抓包。 + 不过我搜了一下,如果想实现这个功能,首先请求的时候就要获得网站的证书,很多资料都是直接用socket和ssl这两个包实现的,但是在python上请求一般都是用requests,用socket操作有点太麻烦了吧,再问问AI呢?AI给出的回复是:`response.raw.connection.getpeercert()`,结果执行了根本没有这个方法,不愧是只会东拼西凑,这应该是ssl库的函数吧……要么可以用`urllib3.contrib.pyopenssl.ssl.get_server_certificate()`这个方法获取,但是这个方法不是在发起请求的时候获取的证书,而是直接先访问了一下服务器然后直接获取的证书,这样每次调用接口的时候可能就要请求两次服务器了,感觉不怎么好……后来去Stack Overflow上搜了一下,还真有关于类似这个问题的[讨论](https://stackoverflow.com/questions/16903528/how-to-get-response-ssl-certificate-from-requests-in-python),于是我简单改编了一下,最终效果如下: +```python +import requests +import hashlib + +HTTPSConnection = requests.packages.urllib3.connection.HTTPSConnection +orig_HTTPSConnection_connect = HTTPSConnection.connect +def new_HTTPSConnection_connect(self): + orig_HTTPSConnection_connect(self) + try: + self.peer_certificate = self.sock.getpeercert(binary_form=True) + except AttributeError: + pass +HTTPSConnection.connect = new_HTTPSConnection_connect + +def verify_cert_request(url): + with requests.get(url, stream=True, verify=False) as r: + result = [ hashlib.sha256(r.raw.connection.sock.getpeercert(binary_form=True)).hexdigest(), r.text ] + return result + +result = verify_cert_request('https://www.baidu.com') +print(result[0]) +print(result[1][:10]) +``` + 用这个代码就能获取到请求的网站中证书的指纹了,如果不希望其他人抓包,先自己计算一下自己证书的hash指纹,然后在代码中执行逻辑的时候先判断一下请求网站的指纹是不是自己网站的指纹,如果不是还可以考虑一下反制措施?这样就能实现证书的验证了。 + +# 后记 + 不过Python作为解释型语言,代码不是随便看😂?就算用Cython然后加壳啥的调用的库依然不是加密的,大不了修改依赖的库然后让它返回的结果向正确的凑可能也行?不过这样至少能防止绝大多数抓包的人了。 \ No newline at end of file From 5097364988a33ec9f21d436e4e3cd088a95868d1 Mon Sep 17 00:00:00 2001 From: mayx Date: Thu, 21 Mar 2024 01:45:48 +0000 Subject: [PATCH 021/244] Update 3 files - /images/offline.svg - /images/online.svg - /proxylist.md --- images/offline.svg | 1 + images/online.svg | 1 + proxylist.md | 37 +++++++++++++++++++++++-------------- 3 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 images/offline.svg create mode 100644 images/online.svg diff --git a/images/offline.svg b/images/offline.svg new file mode 100644 index 0000000..a8a4059 --- /dev/null +++ b/images/offline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/online.svg b/images/online.svg new file mode 100644 index 0000000..530071d --- /dev/null +++ b/images/online.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/proxylist.md b/proxylist.md index daeb27e..8e72535 100644 --- a/proxylist.md +++ b/proxylist.md @@ -3,27 +3,36 @@ layout: default title: 代理列表 --- - 源站: + + + 源站: + + # 代理列表 考虑到中国对于Github Pages在很多地区都有一定程度的解析异常,所以我为我的博客做了很多反向代理。以下代理站均为官方授权: (根据可能的可用性排序) -- -- -- -- -- +- +- +- +- +- +- # 镜像列表 由于[Github已经不再可信](/2022/01/04/banned.html),所以现在提供以下镜像站: -- -- -- -- -- -- -- -- +- +- +- +- +- +- +- +- # 其他平台博客(备用) - From 982a87e0bf29fba7efb4fe05505a3192428ca637 Mon Sep 17 00:00:00 2001 From: mayx Date: Thu, 21 Mar 2024 01:54:03 +0000 Subject: [PATCH 022/244] Update file proxylist.md --- proxylist.md | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/proxylist.md b/proxylist.md index 8e72535..1eb278e 100644 --- a/proxylist.md +++ b/proxylist.md @@ -3,36 +3,30 @@ layout: default title: 代理列表 --- - - - 源站: + 源站: # 代理列表 考虑到中国对于Github Pages在很多地区都有一定程度的解析异常,所以我为我的博客做了很多反向代理。以下代理站均为官方授权: (根据可能的可用性排序) -- -- -- -- -- -- +- +- +- +- +- +- # 镜像列表 由于[Github已经不再可信](/2022/01/04/banned.html),所以现在提供以下镜像站: -- -- -- -- -- -- -- -- +- +- +- +- +- +- +- +- # 其他平台博客(备用) - From 881ed135761f7028edb39b1371a0c1dea3034108 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 6 Apr 2024 09:41:50 +0000 Subject: [PATCH 023/244] Update 2 files - /_posts/2024-04-06-old-pc.md - /index.html --- _posts/2024-04-06-old-pc.md | 207 ++++++++++++++++++++++++++++++++++++ index.html | 2 + 2 files changed, 209 insertions(+) create mode 100644 _posts/2024-04-06-old-pc.md diff --git a/_posts/2024-04-06-old-pc.md b/_posts/2024-04-06-old-pc.md new file mode 100644 index 0000000..de5fff7 --- /dev/null +++ b/_posts/2024-04-06-old-pc.md @@ -0,0 +1,207 @@ +--- +layout: post +title: 关于旧电脑的使用探索 +tags: [旧电脑, Darling, whisper, Anbox] +--- + + 性能差也不一定要淘汰! + +# 起因 + 最近我偶然得到了几台淘汰的废旧电脑,试着重新拼装了一下,发现还有4台电脑还能开机,所以我想试试看这些旧电脑除了性能以外有什么该被淘汰的地方。 + +# 测试平台介绍 + 本次测试的4台电脑为了方便操作,我都装了Linux发行版,Windows的话想要登录还要远程桌面太麻烦了,以下是这些电脑的配置: + 1. 装有 [Intel® Pentium® E5300](https://www.intel.cn/content/www/cn/zh/products/sku/35300/intel-pentium-processor-e5300-2m-cache-2-60-ghz-800-mhz-fsb/specifications.html) CPU的电脑 +``` + .. root@localhost.localdomain + .PLTJ. -------------------------- + <><><><> OS: CentOS Stream 8 x86_64 + KKSSV' 4KKK LJ KKKL.'VSSKK Host: G31M-ES2C + KKV' 4KKKKK LJ KKKKAL 'VKK Kernel: 6.8.1-1.el8.elrepo.x86_64 + V' ' 'VKKKK LJ KKKKV' ' 'V Uptime: 2 days, 19 hours, 11 mins + .4MA.' 'VKK LJ KKV' '.4Mb. Packages: 953 (rpm) + . KKKKKA.' 'V LJ V' '.4KKKKK . Shell: bash 4.4.20 + .4D KKKKKKKA.'' LJ ''.4KKKKKKK FA. Terminal: /dev/pts/2 + CPU: Pentium E5300 (2) @ 2.600GHz + 'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV GPU: Intel 82G33/G31 Express + ' VKKKKK'. .4 LJ K. .'KKKKKV ' Memory: 597MiB / 2969MiB + 'VK'. .4KK LJ KKA. .'KV' + A. . .4KKKK LJ KKKKA. . .4 + KKA. 'KKKKK LJ KKKKK' .4KK + KKSSA. VKKK LJ KKKV .4SSKK + <><><><> + 'MKKM' + '' +``` + 2. 装有 [AMD Athlon™ II X4 641](https://www.amd.com/zh-hans/product/1326) CPU 和 NVIDIA GeForce GT 440 的电脑 +``` + .-/+oossssoo+/-. mayx@mayx-server + `:+ssssssssssssssssss+:` ---------------- + -+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04.6 LTS x86_64 + .ossssssssssssssssssdMMMNysssso. Kernel: 5.4.0-174-generic + /ssssssssssshdmmNNmmyNMMMMhssssss/ Uptime: 1 day, 23 hours, 13 mins + +ssssssssshmydMMMMMMMNddddyssssssss+ Packages: 1276 (dpkg), 4 (snap) + /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Shell: bash 5.0.17 +.ssssssssdMMMNhsssssssssshNMMMdssssssss. Terminal: /dev/pts/0 ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ CPU: AMD Athlon II X4 641 (4) @ 2.800GHz +ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: NVIDIA GeForce GT 440 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 242MiB / 7925MiB ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ +.ssssssssdMMMNhsssssssssshNMMMdssssssss. + /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ + +sssssssssdmydMMMMMMMMddddyssssssss+ + /ssssssssssshdmNNNNmyNMMMMhssssss/ + .ossssssssssssssssssdMMMNysssso. + -+sssssssssssssssssyyyssss+- + `:+ssssssssssssssssss+:` + .-/+oossssoo+/-. +``` + 3. 装有 [Intel® Pentium® G3240](https://www.intel.cn/content/www/cn/zh/products/sku/80796/intel-pentium-processor-g3240-3m-cache-3-10-ghz/specifications.html) CPU的电脑 +``` + .-/+oossssoo+/-. mayx@mayx-server + `:+ssssssssssssssssss+:` ---------------- + -+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04.4 LTS x86_64 + .ossssssssssssssssssdMMMNysssso. Host: H81M-S1 + /ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.15.0-101-generic + +ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 2 days, 19 hours, 58 mins + /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 984 (dpkg), 6 (snap) +.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.1.16 ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ Terminal: /dev/pts/3 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Pentium G3240 (2) @ 3.100GHz +ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: Intel HD Graphics ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memory: 371MiB / 3800MiB +.ssssssssdMMMNhsssssssssshNMMMdssssssss. + /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ + +sssssssssdmydMMMMMMMMddddyssssssss+ + /ssssssssssshdmNNNNmyNMMMMhssssss/ + .ossssssssssssssssssdMMMNysssso. + -+sssssssssssssssssyyyssss+- + `:+ssssssssssssssssss+:` + .-/+oossssoo+/-. +``` + 4. 装有 [Intel® Xeon® E5-2620](https://www.intel.cn/content/www/cn/zh/products/sku/64594/intel-xeon-processor-e52620-15m-cache-2-00-ghz-7-20-gts-intel-qpi/specifications.html) CPU的电脑 +``` + .-/+oossssoo+/-. mayx@mayxserver + `:+ssssssssssssssssss+:` --------------- + -+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04.4 LTS x86_64 + .ossssssssssssssssssdMMMNysssso. Host: X79 0.9 + /ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.15.0-101-generic + +ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 18 hours, 41 mins + /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 773 (dpkg), 9 (snap) +.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.1.16 ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ Terminal: /dev/pts/0 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon E5-2620 0 (12) @ 2.500GHz +ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 8773MiB / 11928MiB ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ +.ssssssssdMMMNhsssssssssshNMMMdssssssss. + /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ + +sssssssssdmydMMMMMMMMddddyssssssss+ + /ssssssssssshdmNNNNmyNMMMMhssssss/ + .ossssssssssssssssssdMMMNysssso. + -+sssssssssssssssssyyyssss+- + `:+ssssssssssssssssss+:` + .-/+oossssoo+/-. +``` + +# 使用探索 + 其实对我来说,性能根本不是什么问题,毕竟想想即使是这些淘汰的电脑,性能也比树莓派强的多,包括对比上次买的[Luckfox Pico Plus](/2024/02/24/luckfox.html)来说就强的更多了,所以即使性能比较差的电脑也不是不能用。 + 不过这些老机器还是有一些坑的,像第一台奔腾E5300的电脑,我试了一下Ubuntu就装不上,安装程序都打不开,可能还是有一些有差别的地方,所以安装了CentOS Stream 8。不过还好这些机器都是64位的CPU,如果是32位的就更麻烦了,可能很多包都没地方下载。 +## 关于Darling的探索 + 那么对于这些机器来说干点什么好呢?当然除了GPIO之类的,树莓派能干的他们也能干,所以要干就干一些特别的东西。我想了一下,我平时用的电脑是macOS系统,虽然给那些旧电脑装黑苹果可能不太现实,但是我之前发现了一个叫[Darling](https://github.com/darlinghq/darling)的项目,类似Wine那样在Linux上运行Windows程序,这个项目可以在Linux上运行macOS的程序。看起来挺有意思的,所以我打算在第一台机器上试着安装一下。 + 不过我按照官方文档上安装,对于CentOS Stream 8来说有好多包不知道为什么似乎都没有,比如libavformat-free-devel之类的,我只好从网上找其他RedHat系列类似的包,或者找替代品FFmpeg,另外Darling需要Linux 5.0或者更高的内核,CentOS的内核版本太低了,所以我升到了主线版本的Linux,也就是6.8的版本……最终花了一天的时间终于编译好了,然而悲剧的是运行的时候报了非法指令“Illegal instruction (core dumped)”的错误。一般来说这个错误是新机器上编译的程序在旧机器运行才会报的错,可我是在同一台机器上编译的为什么会报这种错误呢?可能是因为代码里包含汇编语言的代码吧。我发了个[Issue](https://github.com/darlinghq/darling/issues/1497)问了一下作者,不过看起来他也不知道是什么问题…… + 对于这种问题我感觉也没什么好办法……可能这台机器真的就没办法了?在第二台速龙641的电脑上试了一下也不行……不过后来我在第三台装有奔腾G3240的电脑上试着编译安装了一下,结果可以运行。看来确实是奔腾E5300的问题。不过它俩到底差在哪里呢?看介绍会发现奔腾G3240里包含了Intel® SSE4.1和Intel® SSE4.2的指令集扩展。那么对于没有这个指令集扩展的CPU就没办法了吗?Intel官方给了一个解决方法是[Intel® SDE](https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html),可以在旧机器上模拟运行使用了最新指令集的程序,甚至包括AVX512都可以模拟的出来,但是我用这个东西运行Darling的时候还是报错了,可能Darling需要用到内核的一些特性,但是SDE不能模拟……这都没办法是不是就彻底没办法了呢? + 在偶然的一次浏览中,我发现了一个神奇的东西,内核扩展[OPEMU](https://github.com/mirh/opemu-linux),它可以让不支持一些指令集扩展的CPU通过模拟的方式支持,其实功能和SDE很像,只是它是在内核中运行的,我试着在第一台机器上编译安装了一下(顺便一说,如果是旧的5.x或者更早的Linux可以直接用这个仓库,而更新的Linux比如6.x的需要用[PR](https://github.com/Spacefish/opemu-linux)中的这个仓库),结果Darling真的可以运行了!真是令人难以置信。不过测试了一下,可能还是有些地方有BUG,比如用Git的时候会报错,可能是和README中所说的CRC32表现有问题吧,不过Darling好像可以直接运行Linux中的命令,那我在用Git的时候调用Linux下的Git是不是也可以呢?试了一下不太行,因为执行Linux程序的时候不能用Darling中的目录结构,不过我想装omz只需要/Users目录就够了,我直接创建一个软链接把Darling的/Users目录映射到Linux的根目录就可以了吧,试了一下还行,可以正常运行,虽然Homebrew不能安装有点可惜……不过Neofetch可以安装😆,效果如下: +``` + 'c. root@localhost.localdomain + ,xNMM. -------------------------- + .OMMMMo OS: macOS 11.7.4 Darling x86_64 + OMMM0, Kernel: 20.6.0 + .;loddo:' loolloddol;. Uptime: 2 days, 21 hours, 11 mins + cKMMMMMMMMMMNWMMMMMMMMMM0: Shell: bash 3.2.57 + .KMMMMMMMMMMMMMMMMMMMMMMMWd. DE: Aqua + XMMMMMMMMMMMMMMMMMMMMMMMX. WM: Quartz Compositor +;MMMMMMMMMMMMMMMMMMMMMMMM: WM Theme: Blue (Print: Entry, AppleInterfaceStyle, Does Not Exist) +:MMMMMMMMMMMMMMMMMMMMMMMM: Terminal: /dev/pts/2 +.MMMMMMMMMMMMMMMMMMMMMMMMX. Memory: 0MiB / 2969MiB + kMMMMMMMMMMMMMMMMMMMMMMMMWd. + .XMMMMMMMMMMMMMMMMMMMMMMMMMMk + .XMMMMMMMMMMMMMMMMMMMMMMMMK. + kMMMMMMMMMMMMMMMMMMMMMMd + ;KMMMMMMMWXXWMMMMMMMk. + .cooc,. .,coo:. +``` + 既然第一台电脑装了内核扩展还是有BUG,那么对于第三台电脑来说总该没问题了吧,试了一下Git可以正常运行,安装Homebrew也没问题,但是用brew安装软件的时候会报错,似乎是因为Darling安装的Command Line Tools for Xcode太旧了,有些命令没有所以不能正常安装,不过Neofetch又不需要编译,试着安装了一下没问题,但是运行的时候会报Segmentation fault: 11 (core dumped)的错误……不知道是什么问题。 +## 关于旧显卡利用的探索 + 对于第二台电脑,可以看出来它有一张上古的独显NVIDIA GeForce GT 440,我装好驱动之后运行nvidia-smi可以看到: +``` +Sat Apr 6 08:26:45 2024 ++------------------------------------------------------+ +| NVIDIA-SMI 340.108 Driver Version: 340.108 | +|-------------------------------+----------------------+----------------------+ +| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | +|===============================+======================+======================| +| 0 GeForce GT 440 Off | 0000:01:00.0 N/A | N/A | +| 40% 49C P0 N/A / N/A | 3MiB / 1023MiB | N/A Default | ++-------------------------------+----------------------+----------------------+ + ++-----------------------------------------------------------------------------+ +| Compute processes: GPU Memory | +| GPU PID Process name Usage | +|=============================================================================| +| 0 Not Supported | ++-----------------------------------------------------------------------------+ +``` + 既然是独显,那么果然还是想试试看能不能跑机器学习的算法呢。可是一般来说执行上面的命令可以看到显卡支持的CUDA版本,这个执行完并没有显示啊……那我要怎么用?首先我想试试装个PaddleOCR试试看,但就是因为不知道这个显卡到底能用哪个版本的CUDA,也不知道安装哪个版本的PaddlePaddle框架,更何况之前的机器学习算法对环境要求特别严格,甚至系统新了都没法用,于是在各种报错下我败下阵来,放弃使用CUDA来用这张显卡😭…… + 但并不代表机器学习必须使用CUDA,OpenCL也是可以的啊,正好我之前在测试OpenAI的ASR模型Whisper,有人开发的一个C++使用这个模型的软件[whisper.cpp](https://github.com/ggerganov/whisper.cpp)是支持通过CLBlast使用OpenCL。于是我就先编译安装了CLBlast,然后用对应的参数编译了whisper.cpp,总算是能跑起来了,后来看了一眼clinfo,原来这张显卡才支持CUDA 6.5啊,这能运行啥啊……最后试了一下效果也挺令人失望的,就测试的那个音频用了大概33秒左右才转录完成,果然旧显卡就是纯粹的垃圾啊。 +## 关于Anbox Cloud的探索 + 现在轮到第四台至强E5-2620的电脑了呢,这台电脑可不一般,用的是服务器上用的CPU,一看就是被奸商坑了,买了个i9级处理器,殊不知是淘汰的洋垃圾🤣。不过我手头用的服务器其实也没多好,一台是[至强E5-2620v2](https://www.intel.cn/content/www/cn/zh/products/sku/75789/intel-xeon-processor-e52620-v2-15m-cache-2-10-ghz/specifications.html)(双路),另一台是[至强E5-2620v3](https://www.intel.cn/content/www/cn/zh/products/sku/83352/intel-xeon-processor-e52620-v3-15m-cache-2-40-ghz/specifications.html)(也是双路)(一二三代都有了🤣): +``` + .-/+oossssoo+/-. mayx@mayx-server + `:+ssssssssssssssssss+:` ---------------------- + -+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04.3 LTS x86_64 + .ossssssssssssssssssdMMMNysssso. Host: NF5270M3 00001 + /ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.15.0-78-generic + +ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 84 days, 22 hours, 20 mins + /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 954 (dpkg), 4 (snap) +.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.1.16 ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 1440x900 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso Terminal: /dev/pts/1 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon E5-2620 v2 (24) @ 2.600GHz ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ GPU: 0b:00.0 ASPEED Technology, Inc. ASPEED Graphics Family +.ssssssssdMMMNhsssssssssshNMMMdssssssss. Memory: 68987MiB / 128875MiB + /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ + +sssssssssdmydMMMMMMMMddddyssssssss+ + /ssssssssssshdmNNNNmyNMMMMhssssss/ + .ossssssssssssssssssdMMMNysssso. + -+sssssssssssssssssyyyssss+- + `:+ssssssssssssssssss+:` + .-/+oossssoo+/-. + + .-/+oossssoo+/-. mayx@mayx-algo-server + `:+ssssssssssssssssss+:` --------------------- + -+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04.3 LTS x86_64 + .ossssssssssssssssssdMMMNysssso. Host: PowerEdge R730 + /ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.15.0-91-generic + +ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 84 days, 20 hours, 16 mins + /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 1047 (dpkg), 4 (snap) +.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.1.16 ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 1024x768 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso Terminal: /dev/pts/1 +ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon E5-2620 v3 (24) @ 3.200GHz ++sssshhhyNMMNyssssssssssssyNMMMysssssss+ GPU: NVIDIA Tesla T4 +.ssssssssdMMMNhsssssssssshNMMMdssssssss. GPU: NVIDIA Tesla T4 + /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ Memory: 66345MiB / 128808MiB + +sssssssssdmydMMMMMMMMddddyssssssss+ + /ssssssssssshdmNNNNmyNMMMMhssssss/ + .ossssssssssssssssssdMMMNysssso. + -+sssssssssssssssssyyyssss+- + `:+ssssssssssssssssss+:` + .-/+oossssoo+/-. +``` + 都是正儿八经的洋垃圾,不过对于服务器嘛,垃圾一点也没什么,又不是不能用,至少比租的云服务器好吧。 + 不过既然是服务器级的CPU,自然实验也得要符合服务器级(这个级别的处理器就不用担心什么指令集缺失之类的问题了),正好最近注册了个Ubuntu Pro,里面有个Anbox Cloud,可以拿来试试看。 + 关于Anbox,我之前[试过Waydroid和redroid](/2023/12/24/android.html),不过Anbox Cloud不太一样,这个有点像OpenStack那样,是云手机的管理和实现平台,Anbox对它来说就像QEMU对OpenStack,是创建实例的工具。安装还挺简单的,启用Ubuntu Pro之后再执行`sudo pro enable anbox-cloud`,剩下的跟着提示走就行了,不过因为我的硬盘有点问题,有一半的区域有坏块,虽然屏蔽掉了但还是有些问题,第一次安装失败了,第二次才成功。不过应该说不愧是云平台吗,用起来和我当年学OpenStack在虚拟机里安装一样卡,而且啥也没干先占掉8GiB内存,尤其是对这个又老,内存也小的垃圾旧机器来说果然还是有点勉强啊,更何况硬盘还是坏的🤣。安装好之后用浏览器直接输入IP就能登录平台了,第一次使用要绑定Ubuntu One账号,感觉有点不开放啊……登录之后可以上传应用作为模板,类似镜像那样,可以在创建会话的时候使用相同的镜像,然后每个会话之间是隔离的。不过有个问题是这个东西居然没有ARM兼容层,上传不兼容x86_64的软件会不允许创建应用😅,这有点废物啊,难不成想用这个东西搭个云手机厂商还要买一堆ARM的服务器?之后我找了半天发现Via浏览器可以兼容所有架构的处理器,上传上去之后又报错一次😅,重新再上传才算正常运行起来了。 + +# 感想 + 经过这次的测试,可以看出来这些旧电脑其实安装了Linux发行版之后除了会遇到一堆莫名其妙的问题之外,并不是不能用,顶多是卡了一些,或者要花点精力解决罢了。其实这么看来,除了人工智能方面的发展确实受到了硬件方面的制约,其他的程序其实都无所谓呢?即使是现在的软件放到以前的电脑上也能运行,不知道是软件发展的太慢,还是兼容性做的太好了呢? \ No newline at end of file diff --git a/index.html b/index.html index 385fd6f..3bc7fc0 100644 --- a/index.html +++ b/index.html @@ -58,6 +58,8 @@ title: 首页 - 我的文章 Pixiv图片索引API
+ 拯救凯露
+ 留言板
Links
From 10a3521795f7557934b239e5ac25c28b32013b6a Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 6 Apr 2024 09:43:54 +0000 Subject: [PATCH 024/244] Update file 2024-04-06-old-pc.md --- _posts/2024-04-06-old-pc.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/_posts/2024-04-06-old-pc.md b/_posts/2024-04-06-old-pc.md index de5fff7..d2246ed 100644 --- a/_posts/2024-04-06-old-pc.md +++ b/_posts/2024-04-06-old-pc.md @@ -11,7 +11,8 @@ tags: [旧电脑, Darling, whisper, Anbox] # 测试平台介绍 本次测试的4台电脑为了方便操作,我都装了Linux发行版,Windows的话想要登录还要远程桌面太麻烦了,以下是这些电脑的配置: - 1. 装有 [Intel® Pentium® E5300](https://www.intel.cn/content/www/cn/zh/products/sku/35300/intel-pentium-processor-e5300-2m-cache-2-60-ghz-800-mhz-fsb/specifications.html) CPU的电脑 + 1. 装有 [Intel® Pentium® E5300](https://www.intel.cn/content/www/cn/zh/products/sku/35300/intel-pentium-processor-e5300-2m-cache-2-60-ghz-800-mhz-fsb/specifications.html) CPU的电脑 + ``` .. root@localhost.localdomain .PLTJ. -------------------------- @@ -33,7 +34,8 @@ tags: [旧电脑, Darling, whisper, Anbox] 'MKKM' '' ``` - 2. 装有 [AMD Athlon™ II X4 641](https://www.amd.com/zh-hans/product/1326) CPU 和 NVIDIA GeForce GT 440 的电脑 + 2. 装有 [AMD Athlon™ II X4 641](https://www.amd.com/zh-hans/product/1326) CPU 和 NVIDIA GeForce GT 440 的电脑 + ``` .-/+oossssoo+/-. mayx@mayx-server `:+ssssssssssssssssss+:` ---------------- @@ -56,7 +58,8 @@ ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 242MiB / 7925MiB `:+ssssssssssssssssss+:` .-/+oossssoo+/-. ``` - 3. 装有 [Intel® Pentium® G3240](https://www.intel.cn/content/www/cn/zh/products/sku/80796/intel-pentium-processor-g3240-3m-cache-3-10-ghz/specifications.html) CPU的电脑 + 3. 装有 [Intel® Pentium® G3240](https://www.intel.cn/content/www/cn/zh/products/sku/80796/intel-pentium-processor-g3240-3m-cache-3-10-ghz/specifications.html) CPU的电脑 + ``` .-/+oossssoo+/-. mayx@mayx-server `:+ssssssssssssssssss+:` ---------------- @@ -79,7 +82,8 @@ ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: Intel HD Graphics `:+ssssssssssssssssss+:` .-/+oossssoo+/-. ``` - 4. 装有 [Intel® Xeon® E5-2620](https://www.intel.cn/content/www/cn/zh/products/sku/64594/intel-xeon-processor-e52620-15m-cache-2-00-ghz-7-20-gts-intel-qpi/specifications.html) CPU的电脑 + 4. 装有 [Intel® Xeon® E5-2620](https://www.intel.cn/content/www/cn/zh/products/sku/64594/intel-xeon-processor-e52620-15m-cache-2-00-ghz-7-20-gts-intel-qpi/specifications.html) CPU的电脑 + ``` .-/+oossssoo+/-. mayx@mayxserver `:+ssssssssssssssssss+:` --------------- From f1e707038007fbfb3bf6c1589219d1267f1e2d9c Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 8 Apr 2024 12:52:09 +0000 Subject: [PATCH 025/244] Update 2 files - /js/main.js - /_posts/2024-04-06-old-pc.md --- _posts/2024-04-06-old-pc.md | 12 +++++++----- js/main.js | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/_posts/2024-04-06-old-pc.md b/_posts/2024-04-06-old-pc.md index d2246ed..9b9d74a 100644 --- a/_posts/2024-04-06-old-pc.md +++ b/_posts/2024-04-06-old-pc.md @@ -11,7 +11,7 @@ tags: [旧电脑, Darling, whisper, Anbox] # 测试平台介绍 本次测试的4台电脑为了方便操作,我都装了Linux发行版,Windows的话想要登录还要远程桌面太麻烦了,以下是这些电脑的配置: - 1. 装有 [Intel® Pentium® E5300](https://www.intel.cn/content/www/cn/zh/products/sku/35300/intel-pentium-processor-e5300-2m-cache-2-60-ghz-800-mhz-fsb/specifications.html) CPU的电脑 + 一、装有 [Intel® Pentium® E5300](https://www.intel.cn/content/www/cn/zh/products/sku/35300/intel-pentium-processor-e5300-2m-cache-2-60-ghz-800-mhz-fsb/specifications.html) CPU的电脑 ``` .. root@localhost.localdomain @@ -34,7 +34,7 @@ tags: [旧电脑, Darling, whisper, Anbox] 'MKKM' '' ``` - 2. 装有 [AMD Athlon™ II X4 641](https://www.amd.com/zh-hans/product/1326) CPU 和 NVIDIA GeForce GT 440 的电脑 + 二、装有 [AMD Athlon™ II X4 641](https://www.amd.com/zh-hans/product/1326) CPU 和 NVIDIA GeForce GT 440 的电脑 ``` .-/+oossssoo+/-. mayx@mayx-server @@ -58,7 +58,7 @@ ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 242MiB / 7925MiB `:+ssssssssssssssssss+:` .-/+oossssoo+/-. ``` - 3. 装有 [Intel® Pentium® G3240](https://www.intel.cn/content/www/cn/zh/products/sku/80796/intel-pentium-processor-g3240-3m-cache-3-10-ghz/specifications.html) CPU的电脑 + 三、装有 [Intel® Pentium® G3240](https://www.intel.cn/content/www/cn/zh/products/sku/80796/intel-pentium-processor-g3240-3m-cache-3-10-ghz/specifications.html) CPU的电脑 ``` .-/+oossssoo+/-. mayx@mayx-server @@ -82,7 +82,7 @@ ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: Intel HD Graphics `:+ssssssssssssssssss+:` .-/+oossssoo+/-. ``` - 4. 装有 [Intel® Xeon® E5-2620](https://www.intel.cn/content/www/cn/zh/products/sku/64594/intel-xeon-processor-e52620-15m-cache-2-00-ghz-7-20-gts-intel-qpi/specifications.html) CPU的电脑 + 四、装有 [Intel® Xeon® E5-2620](https://www.intel.cn/content/www/cn/zh/products/sku/64594/intel-xeon-processor-e52620-15m-cache-2-00-ghz-7-20-gts-intel-qpi/specifications.html) CPU的电脑 ``` .-/+oossssoo+/-. mayx@mayxserver @@ -114,7 +114,9 @@ ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 8773MiB / 11928MiB 那么对于这些机器来说干点什么好呢?当然除了GPIO之类的,树莓派能干的他们也能干,所以要干就干一些特别的东西。我想了一下,我平时用的电脑是macOS系统,虽然给那些旧电脑装黑苹果可能不太现实,但是我之前发现了一个叫[Darling](https://github.com/darlinghq/darling)的项目,类似Wine那样在Linux上运行Windows程序,这个项目可以在Linux上运行macOS的程序。看起来挺有意思的,所以我打算在第一台机器上试着安装一下。 不过我按照官方文档上安装,对于CentOS Stream 8来说有好多包不知道为什么似乎都没有,比如libavformat-free-devel之类的,我只好从网上找其他RedHat系列类似的包,或者找替代品FFmpeg,另外Darling需要Linux 5.0或者更高的内核,CentOS的内核版本太低了,所以我升到了主线版本的Linux,也就是6.8的版本……最终花了一天的时间终于编译好了,然而悲剧的是运行的时候报了非法指令“Illegal instruction (core dumped)”的错误。一般来说这个错误是新机器上编译的程序在旧机器运行才会报的错,可我是在同一台机器上编译的为什么会报这种错误呢?可能是因为代码里包含汇编语言的代码吧。我发了个[Issue](https://github.com/darlinghq/darling/issues/1497)问了一下作者,不过看起来他也不知道是什么问题…… 对于这种问题我感觉也没什么好办法……可能这台机器真的就没办法了?在第二台速龙641的电脑上试了一下也不行……不过后来我在第三台装有奔腾G3240的电脑上试着编译安装了一下,结果可以运行。看来确实是奔腾E5300的问题。不过它俩到底差在哪里呢?看介绍会发现奔腾G3240里包含了Intel® SSE4.1和Intel® SSE4.2的指令集扩展。那么对于没有这个指令集扩展的CPU就没办法了吗?Intel官方给了一个解决方法是[Intel® SDE](https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html),可以在旧机器上模拟运行使用了最新指令集的程序,甚至包括AVX512都可以模拟的出来,但是我用这个东西运行Darling的时候还是报错了,可能Darling需要用到内核的一些特性,但是SDE不能模拟……这都没办法是不是就彻底没办法了呢? - 在偶然的一次浏览中,我发现了一个神奇的东西,内核扩展[OPEMU](https://github.com/mirh/opemu-linux),它可以让不支持一些指令集扩展的CPU通过模拟的方式支持,其实功能和SDE很像,只是它是在内核中运行的,我试着在第一台机器上编译安装了一下(顺便一说,如果是旧的5.x或者更早的Linux可以直接用这个仓库,而更新的Linux比如6.x的需要用[PR](https://github.com/Spacefish/opemu-linux)中的这个仓库),结果Darling真的可以运行了!真是令人难以置信。不过测试了一下,可能还是有些地方有BUG,比如用Git的时候会报错,可能是和README中所说的CRC32表现有问题吧,不过Darling好像可以直接运行Linux中的命令,那我在用Git的时候调用Linux下的Git是不是也可以呢?试了一下不太行,因为执行Linux程序的时候不能用Darling中的目录结构,不过我想装omz只需要/Users目录就够了,我直接创建一个软链接把Darling的/Users目录映射到Linux的根目录就可以了吧,试了一下还行,可以正常运行,虽然Homebrew不能安装有点可惜……不过Neofetch可以安装😆,效果如下: + 在偶然的一次浏览中,我发现了一个神奇的东西,内核扩展[OPEMU](https://github.com/mirh/opemu-linux),它可以让不支持一些指令集扩展的CPU通过模拟的方式支持,其实功能和SDE很像,只是它是在内核中运行的,我试着在第一台机器上编译安装了一下(顺便一说,如果是旧的5.x或者更早的Linux可以直接用这个仓库,而更新的Linux比如6.x的需要用[PR](https://github.com/Spacefish/opemu-linux)中的这个仓库),结果Darling真的可以运行了!真是令人难以置信。 + 安装成功之后我在网上找了个C语言的程序:[endoh1](http://www.ioccc.org/2012/endoh1/hint.html),这个程序可以用文本模拟流体。我在我的MacBook上编译了试了一下,运行没有问题,当然直接编译的程序是ARM64的程序,肯定不能在Darling里面运行,于是我切换到x86_64模式下又编译了一次,并且用`lipo`命令把两个程序合并到了一起,然后把程序上传到第一台机器中使用Darling运行,竟然可以正常运行,看来那个内核扩展还不错啊,Darling居然没有出问题。 + 不过测试了一下,可能还是有些地方有BUG,比如用Git的时候会报错,可能是和README中所说的CRC32表现有问题吧,不过Darling好像可以直接运行Linux中的命令,那我在用Git的时候调用Linux下的Git是不是也可以呢?试了一下不太行,因为执行Linux程序的时候不能用Darling中的目录结构,不过我想装omz只需要/Users目录就够了,我直接创建一个软链接把Darling的/Users目录映射到Linux的根目录就可以了吧,试了一下还行,可以正常运行,虽然Homebrew不能安装有点可惜……不过Neofetch可以安装😆,效果如下: ``` 'c. root@localhost.localdomain ,xNMM. -------------------------- diff --git a/js/main.js b/js/main.js index c14a457..848ec76 100644 --- a/js/main.js +++ b/js/main.js @@ -9,7 +9,7 @@ $(window).bind("scroll", $backToTopFun); $(function() { $backToTopFun(); }); })(); -var auxiliaryHost = "https://counter.mayx.eu.org"; +var auxiliaryHost = "https://mayx.count.linkpc.net"; $(function(){ $("div#landlord").mouseenter(function(){ $("div.live_ico_box").fadeIn(); From 106aa95def478f249b3ecd593878f32d6bf9bc20 Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 15 Apr 2024 07:29:05 +0000 Subject: [PATCH 026/244] Update default.html --- _layouts/default.html | 223 ++++++++++++++++++++---------------------- 1 file changed, 105 insertions(+), 118 deletions(-) diff --git a/_layouts/default.html b/_layouts/default.html index 734ad8f..ab90993 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,153 +1,140 @@ - - - - -{% seo %} -{% feed_meta %} - - - - - - + + + + - -{% if site.google_analytics %} - - - + + {% endif %} + - - -
-
-

{{ site.title | default: site.github.repository_name }}

- - {% if site.logo %} - Logo + + + + +
+
+

{{ site.title | default: site.github.repository_name }}

+ + {% if site.logo %} + Logo {% endif %} -

{{ site.description | default: site.github.project_tagline }}

- -

+

{{ site.description | default: site.github.project_tagline }}

- {% if site.github.is_project_page %} -

View the Project on GitHub {{ site.github.repository_nwo }}

- {% endif %} +

+

+ +
+

- {% if site.github.is_user_page %} -

View My GitHub Profile

- {% endif %} - -

About Me

+ {% if site.github.is_project_page %} +

View the Project on GitHub + {{ site.github.repository_nwo }}

+ {% endif %} -
-
+ +
+
{{ content }} -
- -
-
- -
- -
召唤伊斯特瓦尔
+
召唤伊斯特瓦尔
-
-

Made with ❤ by Mayx
Last updated at
总字数: -{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %} -{% assign count = count | plus: single_count %}{% endfor %}{% if count > 10000 %}{{ count | divided_by: 10000 }} 万 {{ count | modulo: 10000 }} -{% else %}{{ count }}{% endif %} - 文章数:{% for post in site.posts %}{% assign co = co | plus: 1 %}{% endfor %}{{ co }} - Atom - About

-
-
- +
+

+ Made with ❤ by Mayx
Last updated at
总字数:{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{% if count > 10000 %}{{ count | divided_by: 10000 }} 万 {{ count | modulo: 10000 }}{% else %}{{ count }}{% endif %} - 文章数:{% for post in site.posts %}{% assign co = co | plus: 1 %}{% endfor %}{{ co }} - Atom - About
+

+
+
+ - - - - + + + + - - - + + + + \ No newline at end of file From 04e63388b6955750ff3e6b538801c2f699a87549 Mon Sep 17 00:00:00 2001 From: mayx Date: Sun, 19 May 2024 11:10:53 +0000 Subject: [PATCH 027/244] Update 2 files - /_posts/2024-05-19-bt-ops.md - /proxylist.md --- _posts/2024-05-19-bt-ops.md | 30 ++++++++++++++++++++++++++++++ proxylist.md | 2 -- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 _posts/2024-05-19-bt-ops.md diff --git a/_posts/2024-05-19-bt-ops.md b/_posts/2024-05-19-bt-ops.md new file mode 100644 index 0000000..f2a98f2 --- /dev/null +++ b/_posts/2024-05-19-bt-ops.md @@ -0,0 +1,30 @@ +--- +layout: post +title: 从宝塔面板中学习运维知识 +tags: [宝塔, 运维] +--- + + 用Python代码的程序就等着被抄吧! + +# 起因 + 之前我[用旧电脑拼了一堆服务器](/2024/04/06/old-pc.html),但是上面装的东西其实试完之后就没什么兴趣了,主要是它们实际上没有解决什么问题。后来我觉得还是更应该向更有意义的地方靠,于是我就在每个机器上安装了不同的运维面板,打算分别测试一下效果。 + 我安装的面板有[1Panel](https://github.com/1Panel-dev/1Panel),[小皮面板公测版](https://beta.xp.cn/),[宝塔面板破解版](https://baota.sbs/)。1Panel很不错,但是除了网站管理之外功能全是Docker带来的,另外代码是Go写的我现在还看不懂。小皮面板重构之后很令我失望,功能比旧版小皮面板还少,安装的时候居然还会收集服务器信息并上传?运行环境版本少,PHP连扩展安装的功能都没有,而且现在直接摆烂全放的是配置文件,要是都自己改配置文件了还要面板干啥?另外重构之后也变成Go写的了,就这样拿什么和别的面板打? + 宝塔面板破解版之前我在[测试Koyeb](/2022/11/29/free-server.html)的时候试过一个,不过后来看到了一个新的,主要是之前那个界面上改的全是的广告,新找的这个破解版不仅界面没有做什么修改,而且[后端开源](https://github.com/flucont/btcloud),也不用担心有什么后门。 + 虽然我不信任宝塔面板,毕竟漏洞出的多,各种收费项目,还各种收集用户信息,强制登录啥的,但是有一个好处就是它是Python写的,而且大多数代码并没有混淆(代码倒是[开源](https://github.com/aaPanel)了,就是没更新)。作为一款算是比较成熟的面板,有些功能还是比较有意思的,而且我也能看懂Python代码,所以有些有意思的功能就可以看看它的代码是如何实现的。 + +# 功能探索与解析 + 对于免费版有的功能,其实我不太关心,一是那些大多数并不复杂,自己装也没什么难度,二是大多功能其实我并不感兴趣🤣。对于付费功能不得不说有的还挺离谱的,有些非常简单的功能价格居然很贵,比如服务器网络加速BBR,这个功能是内核提供的,自己一个命令就能打开,和宝塔半毛钱关系都没有,价格居然是4.93元/天?不过我没用过官网下的宝塔,不知道是破解版乱标还是真是这个价格。 + 另外还有一些是纯粹解析类的也没什么意思,比如网站监控报表还有WAF啥的,那些没什么技巧,就只是只要肯写这个功能就会有的东西。我的话更关心一些看起来实现还算难,值得收钱,但是实现其实很简单的东西😁。 +## 宝塔防入侵 + 其实对于这个功能,我觉得实现应该不复杂,用SELinux或者AppArmor然后进行合理的配置应该就可以了,但是离谱的是开了这个功能我安装Redis等软件的时候各种报错,用宝塔安装Redis是通过编译安装的,正常来说不应该报错才对的啊,而且就算用了SELinux或者AppArmor也不应该有问题,另外它的报错是Segmentation fault,什么情况编译会报这种错误啊……所以我看了看它的代码,原来他们的实现根本没有用SELinux或者AppArmor,可能一是配置复杂,他们的程序员驾驭不了,二是Ubuntu和红帽系不一定都有安SELinux或者AppArmor,适配起来比较麻烦。他们用的居然是一个不知名的开源软件:[Snoopy](https://github.com/a2o/snoopy),原理也很简单,就是在环境变量里配置在运行任意软件的时候把Snoopy先加载进去,然后它就能记录程序运行时的行为了,但显然这个程序并不怎么成熟,运行某些软件的时候居然会报Segmentation fault的错误,这样的东西也好意思收钱? +## 宝塔系统加固 + 其实这个功能没啥特别的,但是我看它有好多关于等保的功能,因为我维护的服务器中也有需要符合等保要求的,所以这个功能对我来说还挺有用,至少可以做个参考。不过里面有些比如对文件或者文件夹的保护这个实现我还挺感兴趣的,正常来说就算拿权限限制也限制不了root,可是这个功能打开之后居然连root都没有权限操作,还是挺神奇的,之后我看了一下代码,原来有一个叫做chattr的东西,用这个可以加扩展权限,比如`chattr +i `就可以让任何人都没有权限操作这个文件,想要操作的话必须执行`chattr -i `解除才行。因为一般都是拿普通权限限制的,从来没考虑过扩展权限,这下学到新知识了😆。 +## 文件监控 + 这个功能其实也不复杂,之前我写过一个[定时调度器](/2022/09/21/cron.html),其中的热载功能用的是watchdog,而wathcdog在Linux下其实用的就是inotify特性,宝塔在实现这个东西的时候用的是pyinotify库,其实它俩倒是没什么特别大的区别,只是watchdog能跨平台而已,虽然宝塔面板也有Windows版,不过估计应该是没有这个插件吧。 +## 堡塔企业级防篡改 + 这个和刚才那个用chattr的从功能上来看倒是挺像的,不过这个写的是内核级,看了一下确实有个内核模块,叫做tempercore,虽然编译是在本地进行的但是代码加了密,编译还得用它文件夹里一个叫jm的程序进行编译😅,我猜它的实现应该是在内核里hook了操作文件的API,操作完之后会进行记录,不过试了一下根本没有起效果😅,不知道是我破解版的问题还是不支持Ubuntu…… +## 堡塔运维平台 + 从功能上来看挺像Ansible的,看了一下代码是用paramiko直接在远程服务器上执行命令的。不过Ansible也是Python写的,倒是没差。功能有点太简单了,自己用脚本也能实现,不过提供了个面板可能相对适合小白吧,就是这个价格恐怕只有脑子进水的人才会买了。 + +# 总结 + 总的看来宝塔确实有些有意思的功能,实现有些挺有意思的,看了他们的代码之后感觉也能学到点东西,也许以后有机会可以用得上。但是完全不值那个价,这点东西也敢卖钱也真是挺厉害的,不过可能对于政府项目来说这些安全功能还是挺有意义的,毕竟没什么运维会去当公务员,而且企业版的价格对他们来说都已经算相当便宜了🤣。 \ No newline at end of file diff --git a/proxylist.md b/proxylist.md index 1eb278e..75a9076 100644 --- a/proxylist.md +++ b/proxylist.md @@ -12,7 +12,6 @@ title: 代理列表 (根据可能的可用性排序) - - -- - - - @@ -23,7 +22,6 @@ title: 代理列表 - - - -- - - - From cbe4db5992761d2fb6b89cc4945089fa6314dd71 Mon Sep 17 00:00:00 2001 From: mayx Date: Sun, 16 Jun 2024 12:26:12 +0000 Subject: [PATCH 028/244] Update file 2024-06-16-hackintosh.md --- _posts/2024-06-16-hackintosh.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 _posts/2024-06-16-hackintosh.md diff --git a/_posts/2024-06-16-hackintosh.md b/_posts/2024-06-16-hackintosh.md new file mode 100644 index 0000000..643feb4 --- /dev/null +++ b/_posts/2024-06-16-hackintosh.md @@ -0,0 +1,27 @@ +--- +layout: post +title: Hackintosh使用体验 +tags: [Apple, Hackintosh, macOS, 黑苹果] +--- + + 使用Mac到底有些什么优势呢? + +# 起因 + 我曾经装过很多系统,Windows、FreeBSD、Linux发行版什么的都试过,但是直到我[拥有MacBook](/2023/02/03/mbp.html)我也没有试过安装黑苹果。主要是在ARM芯片的Mac出现之前,我一直看不起Mac,因为没有差异化,明明和其他电脑用的是同样的东西,一样的CPU、一样的显卡、一样的内存以及硬盘,凭什么比其他电脑贵那么多,也因此CPU能效不行,续航也不行,而且质量也不行,据说在使用蝴蝶键盘那段时间,键盘的损坏率极高,而且散热很差,经常出现CPU空焊的问题,还因此有了“梦幻单热管”的名号。 + 当然也是因为垃圾的硬件,与其配套的软件macOS也并没有什么优势,我也没什么兴趣去装黑苹果,对我来说我觉得x86时代的macOS更像是一种Linux发行版。 + 但直到ARM芯片的Mac出来之后,一切才不一样起来,差异化是一方面,在这个芯片的加持下的macOS也出现了很多的黑科技……当然这都不是重点,重点是最近正好需要一台Mac,我又不想用我自己的MacBook,所以随便找了台电脑装了个黑苹果试试效果。 + +# 安装体验 + 据说安装黑苹果很麻烦,不过具体麻烦在哪我也不太清楚。看了一下教程是要根据自己的电脑硬件情况自定义一个EFI文件夹用来引导,应该就是用这个方式模拟Mac的引导环境。至于怎么搞这个EFI文件夹我搜了一下,有一个叫做[RapidEFI-Tool](https://github.com/JeoJay127/RapidEFI-Tool)的软件可以填入自己电脑的硬件信息然后一键生成EFI。生成完成之后把要装macOS的硬盘的分区全部删除,然后新建ESP分区,把EFI文件放进去就行了,然后剩余的空间再创建一个分区,把苹果官方的系统镜像用[balenaEtcher](https://etcher.balena.io/)烧录到U盘里,剩下的就和正常安装系统的步骤一样了,遵循向导的提示进行就行了。 + 这么来看好像也没有很复杂,也可能是因为我用的是台式机,不用考虑无线网络之类的问题吧(当然隔空投送之类的东西就用不了了),我看其他大多数人遇到的问题好像都出在无线网络上,而且我的CPU比较老,是i5-7500,在适合装黑苹果的范围内,所以没有出现奇怪的问题,安装完成之后硬盘、显卡、内存都正确识别了,打开浏览器也能正常上网,看来是成功了。 + +# 使用体验 + 我装的系统和我的MacBook一样,都是macOS Sonoma 14.5,所以整体体验都是一样的,而且黑苹果的内存还更大,是16GiB的,这也能让我安心的尝试虚拟机了,不像我的笔记本才8GiB连虚拟机都不敢安。 + 绝大多数软件安装都没有问题,使用也和笔记本一样,不过如果完全一样不就体现不出我笔记本的优势了嘛🤣,我还试了试别的软件,比如针对Apple芯片优化的[llama.cpp](https://github.com/ggerganov/llama.cpp),试了一下可以运行,但是结果全是乱码。应该是llama.cpp可以调Metal的API使用核显进行加速,但是核显好像最多只能分配2GiB的显存,而且和Apple芯片不一样的是它好像并不是可以随意分配内存给显卡的,分配给显卡的部分CPU就不能用了,而Apple芯片是两边都可以用,也正是如此,假设核显的内存够用,模型也要占两份内存,而Apple芯片的只需要占一份内存(我猜的😝)。 + 另外使用了Apple芯片的NPU的软件[Mochi Diffusion](https://github.com/MochiDiffusion/MochiDiffusion)也是不能运行的,因为根本没有做x86版本的🤣,不过用brew安装居然可以安,但是打不开🤣,所以提了个[pr](https://github.com/Homebrew/homebrew-cask/pull/176891)。不过就算做了拿Intel那个核显跑估计会卡死。 + 另外还有[PlayCover](https://github.com/PlayCover/PlayCover)也装不了,这个也算是Apple芯片的特色了,毕竟苹果不可能做ARM转x86的Rosetta,iOS的软件只可能是ARM架构的,Intel的Mac当然执行不了了。 + 还有为GPTk设计的软件[Whisky](https://github.com/Whisky-App/Whisky)也不能用,不过这个无所谓,毕竟黑苹果想切回Windows再简单不过了,根本没有安装这种软件的必要,当然如果说类似的,Crossover应该可以用,不过那个不是免费的,所以我不会去尝试它。 + 虚拟机的话我先试了一下VMware Fusion,安装是正常的,但是打不开,BIOS的虚拟化也开了,VT-d好像黑苹果不能开但应该不影响运行虚拟机。之后又试了一下UTM,我本来以为UTM是专门给Apple芯片使用的,结果居然能安装上,而且Intel版也有苹果官方的虚拟化框架,所以原生运行x86版的Ubuntu没有问题,而且系统信息显示的是Apple Virtualization Generic Platform,看来虚拟化的功能都是正常的,黑苹果效果还不错。 + +# 感想 + 虽然总的来看黑苹果算是不错,但是在我看来也顶多省了个Mac Mini而已,当然Mac Pro应该也能拿黑苹果代替,iMac毕竟有个质量还不错的屏幕,不能完全代替。毕竟从功能来说,我觉得macOS和Linux差不多,尤其现在Linux的软件越来越多,现在连微信都有Linux原生版了,而且还有Intel Mac没有的移动端软件(Linux可以[用容器运行Android](/2023/12/24/android.html))。不过对于笔记本来说,续航是最大的优势,Apple芯片+macOS带来的笔记本体验才是最好的,其他Mac Mini啥的根本没有体现出Apple芯片的优势,毕竟要说性能的话同价格Mac是没有优势的,唯有续航是没有其他笔记本产品能打的(带充电宝没用,充电宝能续几个航啊)。 \ No newline at end of file From 41ce7aabb001562d5e7da2d06a426479913275d9 Mon Sep 17 00:00:00 2001 From: mayx Date: Tue, 2 Jul 2024 03:59:47 +0000 Subject: [PATCH 029/244] Update 2 files - /proxylist.md - /js/main.js --- js/main.js | 5 ++--- proxylist.md | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/js/main.js b/js/main.js index 848ec76..35f216c 100644 --- a/js/main.js +++ b/js/main.js @@ -9,7 +9,6 @@ $(window).bind("scroll", $backToTopFun); $(function() { $backToTopFun(); }); })(); -var auxiliaryHost = "https://mayx.count.linkpc.net"; $(function(){ $("div#landlord").mouseenter(function(){ $("div.live_ico_box").fadeIn(); @@ -18,7 +17,7 @@ $(function(){ $("div.live_ico_box").fadeOut(); }); function showHitS(hits){ - $.get(auxiliaryHost+"/counter.php?action=show&id="+hits.id,function(data){ + $.get("https://summary.mayx.eu.org/counter?id="+hits.id,function(data){ hits.innerHTML=Number(data); }); } @@ -31,7 +30,7 @@ function showHitCount() { } function addCount() { var visitors=$(".visitors"); - $.get(auxiliaryHost+"/counter.php?action=add&id="+visitors[0].id,function(data){ + $.get("https://summary.mayx.eu.org/counter_add?id="+visitors[0].id,function(data){ visitors[0].innerHTML=Number(data); }); } diff --git a/proxylist.md b/proxylist.md index 75a9076..adfc62e 100644 --- a/proxylist.md +++ b/proxylist.md @@ -24,6 +24,7 @@ title: 代理列表 - - - +- - # 其他平台博客(备用) From 5c7773fb59d59bdb57fc20789ad44a01dff5c73d Mon Sep 17 00:00:00 2001 From: mayx Date: Tue, 2 Jul 2024 08:09:28 +0000 Subject: [PATCH 030/244] Update 2 files - /_layouts/post.html - /js/main.js --- _layouts/post.html | 154 ++++++++++++++++++++++++++++----------------- js/main.js | 4 +- 2 files changed, 99 insertions(+), 59 deletions(-) diff --git a/_layouts/post.html b/_layouts/post.html index baf7b57..12abedd 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -2,89 +2,129 @@ layout: default --- -{{ page.date | date: "%-d %B %Y" }} - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: " " | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: Loading... - +{{ page.date | date: "%-d %B %Y" }} - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: "" | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: Loading...

{{ page.title }}

by {{ page.author | default: site.author }}


+{% if page.layout != "encrypt" %} + +AI摘要 +

+ +
+ +{% endif %} {% include toc.html html=content sanitize=true h_max=3 %} {{content}} {% if page.tags %} - tags: {{ page.tags | join: " - " }} +tags: {{ page.tags | join: " - " }} {% endif %} + {% if page.next.url %} + + + 下一篇:{{ page.next.title }} + + + {% endif %} +
- - + +
- + \ No newline at end of file diff --git a/js/main.js b/js/main.js index 35f216c..0377ea1 100644 --- a/js/main.js +++ b/js/main.js @@ -17,7 +17,7 @@ $(function(){ $("div.live_ico_box").fadeOut(); }); function showHitS(hits){ - $.get("https://summary.mayx.eu.org/counter?id="+hits.id,function(data){ + $.get("https://summary.mayx.eu.org/count_click?id="+hits.id,function(data){ hits.innerHTML=Number(data); }); } @@ -30,7 +30,7 @@ function showHitCount() { } function addCount() { var visitors=$(".visitors"); - $.get("https://summary.mayx.eu.org/counter_add?id="+visitors[0].id,function(data){ + $.get("https://summary.mayx.eu.org/count_click_add?id="+visitors[0].id,function(data){ visitors[0].innerHTML=Number(data); }); } From 934c04aea725394c0e391909c486dc4fc6b0f3a3 Mon Sep 17 00:00:00 2001 From: mayx Date: Tue, 2 Jul 2024 08:25:21 +0000 Subject: [PATCH 031/244] Update file post.html --- _layouts/post.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_layouts/post.html b/_layouts/post.html index 12abedd..5fcac86 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -28,7 +28,7 @@ layout: default {% if page.layout != "encrypt" %} AI摘要 -

+

正在生成中……


From cd294479e045ce91ac320b73bff04febdd4eaf46 Mon Sep 17 00:00:00 2001 From: mayx Date: Wed, 3 Jul 2024 13:01:14 +0000 Subject: [PATCH 033/244] Update file 2024-07-03-ai-summary.md --- _posts/2024-07-03-ai-summary.md | 292 ++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 _posts/2024-07-03-ai-summary.md diff --git a/_posts/2024-07-03-ai-summary.md b/_posts/2024-07-03-ai-summary.md new file mode 100644 index 0000000..dc79dd7 --- /dev/null +++ b/_posts/2024-07-03-ai-summary.md @@ -0,0 +1,292 @@ +--- +layout: post +title: 使用Cloudflare Workers制作博客AI摘要 +tags: [Cloudflare, Workers, AI, 博客] +--- + + Cloudflare实在是太强了,以至于全都依赖它了😂 + +# 起因 + 虽然很早就在[关注AI](/2023/04/05/ai.html)了,而且也看到有些博客早已用上了AI摘要(比如xLog下的),但是一般都要后端提前生成好,另外那时候还没有那么多免费好用的接口可以用,像OpenAI到现在还没有GPT免费的API😂,至于花钱就更是想都别想,互联网的东西我是不会花钱的,就因为这样我一直都没有考虑过给我的博客加AI摘要的功能。 + 直到前两天看到一个Hexo的博客有一个AI摘要的功能,如果是有后端的博客我可能还没什么兴趣,但是既然是纯前端的就引发了我的兴趣,我大概看了一下,用的是一个叫[Post-Abstract-AI](https://github.com/zhheo/Post-Abstract-AI)的项目,定睛一看,居然还是收费的,而且API Key还是直接明文放代码里的,给我看笑了。如果我拿着这个Key去不停刷使用量不一会就把它刷完了?不过这时候我想起来赛博活佛Cloudflare之前也出了AI功能,还是免费的,我何不用Workers写一个好好打脸一下这个收费的项目?就像我对[Server酱](/2021/02/02/serverchan.html)做的事情一样。 + +# 开始制作 + 首先先不考虑重复造轮子,去Github上看看有没有现成的,毕竟Cloudflare的这个AI功能也出了不少时间了,搜了一下还真有,叫[Qwen-Post-Summary](https://github.com/FloatSheep/Qwen-Post-Summary),用的居然还是阿里的通义千问模型,这倒是不错,毕竟如果用Llama3的话说不定给我生成出来全是英文了,国产的模型至少都是对中文优化过的。 + 我仔细看了看,发现它怎么是把文章放GET请求里的,要知道浏览器是不会允许超过4KiB的请求头的,看了一下代码还截取成前1800字了,感觉有点不爽,不过我搜了一下,为了能简单的做到流式效果,用的EventSource功能根本不支持POST请求……看来这个代码不能直接拿来用了,另外我也不希望每次打开文章都重新生成摘要,那样不仅浪费计算资源,而且毫无意义,毕竟文章又不会变。所以我首先考虑怎么样存AI生成的结果呢?另外为了能通过POST把文章喂给AI我也得考虑存文章。最开始我想着用Workers的KV数据库,因为那是最早出的,虽然限制很多但当时没得选。但这次点开发现居然有个D1数据库,容量更大,[延迟更低](https://github.com/bruceharrison1984/kv-d1-benchmark),操作次数更多而且还支持SQL语法,这不比那个KV数据库好太多了,这下都不知道这个KV数据库留着还有啥意义了,可能就单纯是为了兼容以前的应用不得不留着了吧。 + 不过既然会存储内容,还得考虑一点就是万一有人偷偷拿我的接口把我的文章内容换了,让AI生成了糟糕的内容,显示在我的文章里多不合适啊,所以为了避免这种问题,我每次会对比文章的数字摘要,免得有人把我数据库里的文章篡改了🤣。 + 最终基于上面的代码边查文档边改把代码写出来了,顺便把我之前写的[博客计数器](/2019/06/22/counter.html)也一起替换掉了,做到真正的Serverless: +```javascript +async function sha(str) { + const encoder = new TextEncoder(); + const data = encoder.encode(str); + const hashBuffer = await crypto.subtle.digest("SHA-256", data); + const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array + const hashHex = hashArray + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); // convert bytes to hex string + return hashHex; +} +async function md5(str) { + const encoder = new TextEncoder(); + const data = encoder.encode(str); + const hashBuffer = await crypto.subtle.digest("MD5", data); + const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array + const hashHex = hashArray + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); // convert bytes to hex string + return hashHex; +} + +export default { + async fetch(request, env, ctx) { + const db = env.blog_summary; + const url = new URL(request.url); + const query = decodeURIComponent(url.searchParams.get('id')); + const commonHeader = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': "*", + 'Access-Control-Allow-Headers': "*", + 'Access-Control-Max-Age': '86400', + } + if (query == "null") { + return new Response("id cannot be none", { + headers: { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': "*", + 'Access-Control-Allow-Headers': "*", + 'Access-Control-Max-Age': '86400', + } + }); + } + if (url.pathname.startsWith("/summary")) { + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + return new Response("No Record", { + headers: commonHeader + }); + } + + const messages = [ + { + role: "system", content: ` + 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。 + 技能 + 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。 + 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。 + 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。 + 约束 + 输出内容必须以中文进行。 + 必须确保摘要内容准确反映原文章的主旨和重点。 + 尊重原文的观点,不能进行歪曲或误导。 + 在摘要中明确区分事实与作者的意见或分析。 + 提示 + 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。 + 格式 + 你的回答格式应该如下: + 这篇文章介绍了<这里是内容> + ` }, + { role: "user", content: result.substring(0, 5000) } + ] + + const stream = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', { + messages, + stream: true, + }); + + return new Response(stream, { + headers: { + "content-type": "text/event-stream; charset=utf-8", + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': "*", + 'Access-Control-Allow-Headers': "*", + 'Access-Control-Max-Age': '86400', + } + }); + } else if (url.pathname.startsWith("/get_summary")) { + const orig_sha = decodeURIComponent(url.searchParams.get('sign')); + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + return new Response("no", { + headers: commonHeader + }); + } + let result_sha = await sha(result); + if (result_sha != orig_sha) { + return new Response("no", { + headers: commonHeader + }); + } else { + let resp = await db.prepare( + "SELECT summary FROM blog_summary WHERE id = ?1" + ).bind(query).first("summary"); + if (resp) { + return new Response(resp, { + headers: commonHeader + }); + } else { + const messages = [ + { + role: "system", content: ` + 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。 + 技能 + 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。 + 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。 + 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。 + 约束 + 输出内容必须以中文进行。 + 必须确保摘要内容准确反映原文章的主旨和重点。 + 尊重原文的观点,不能进行歪曲或误导。 + 在摘要中明确区分事实与作者的意见或分析。 + 提示 + 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。 + 格式 + 你的回答格式应该如下: + 这篇文章介绍了<这里是内容> + ` }, + { role: "user", content: result.substring(0, 5000) } + ] + + const answer = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', { + messages, + stream: false, + }); + resp = answer.response + await db.prepare("UPDATE blog_summary SET summary = ?1 WHERE id = ?2") + .bind(resp, query).run(); + return new Response(resp, { + headers: commonHeader + }); + } + } + } else if (url.pathname.startsWith("/is_uploaded")) { + const orig_sha = decodeURIComponent(url.searchParams.get('sign')); + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + return new Response("no", { + headers: commonHeader + }); + } + let result_sha = await sha(result); + if (result_sha != orig_sha) { + return new Response("no", { + headers: commonHeader + }); + } else { + return new Response("yes", { + headers: commonHeader + }); + } + } else if (url.pathname.startsWith("/upload_blog")) { + if (request.method == "POST") { + const data = await request.text(); + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + await db.prepare("INSERT INTO blog_summary(id, content) VALUES (?1, ?2)") + .bind(query, data).run(); + result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + } + if (result != data) { + await db.prepare("UPDATE blog_summary SET content = ?1 WHERE id = ?2") + .bind(data, query).run(); + } + return new Response("OK", { + headers: commonHeader + }); + } else { + return new Response("need post", { + headers: commonHeader + }); + } + } else if (url.pathname.startsWith("/count_click")) { + let id_md5 = await md5(query); + let count = await db.prepare("SELECT `counter` FROM `counter` WHERE `url` = ?1") + .bind(id_md5).first("counter"); + if (url.pathname.startsWith("/count_click_add")) { + if (!count) { + await db.prepare("INSERT INTO `counter` (`url`, `counter`) VALUES (?1, 1)") + .bind(id_md5).run(); + count = 1; + } else { + count += 1; + await db.prepare("UPDATE `counter` SET `counter` = ?1 WHERE `url` = ?2") + .bind(count, id_md5).run(); + } + } + if (!count) { + count = 0; + } + return new Response(count, { + headers: commonHeader + }); + } else { + return Response.redirect("https://mabbs.github.io", 302) + } + } +} +``` + 另外也写了配套的前端代码(用的jQuery,其实应该用Fetch的😂): +```html +AI摘要 +

正在生成中……

+ +``` + 本来文章内容应该从html里读更好一些,但是标签啥的还得用正则去掉,感觉不如Liquid方便😂。另外博客计数器不应该用MD5的,但懒得改之前的数据了,还好Cloudflare Workers为了兼容是支持MD5的,免得我还得想办法改数据库里的数据。 + +# 使用方法 + 如果想给自己的静态博客加AI摘要功能的话也可以用我的接口,把前端代码粘到模板里就行,反正是用的Cloudflare的资源,而且现在通义千问的模型还是Beta版调用没有次数限制,就算之后变正式版,也能每天免费用1w个神经元,好像可以进行1k次左右的生成,完全够用了,只要别和我文章url重了就行。 + 不过毕竟Workers本身是有每日调用次数限制的,自己部署当然更好。方法也很简单,首先在D1里创建一个数据库,然后创建一个Workers,在变量里绑定AI和新建的D1数据库,名字要起成blog_summary,如果想换名字就要改代码,里面建一张叫做blog_summary的表,需要有3个字段,分别是id、content、summary,都是text类型,如果想用博客计数器功能就再加一张counter表,一个是url,text类型,另一个是counter,int类型。本来博客计数器接口名字也打算用counter的,结果不知道AdBlock有什么大病,居然会屏蔽“counter?id=”这样的请求😆,害的我只能改成count_click这样的名字了。 + +# 其他想法 + 加了这个功能之后感觉效果还挺不错的,这下就有点想加点别的功能了,比如文章推荐和知识库问答啥的,不过这个似乎需要什么向量数据库,而且数据需要进行“嵌入”处理,这用现有的东西感觉难度实在是太高了所以就算了……另外还想用文生图模型给我的文章加个头图,不过我天天写的都是些技术文章,没啥图可加吧🤣。其他的之后再看看有什么有意思的功能再加吧。 + +# 感想 + Cloudflare真不愧是赛博活佛,这波操作下来不就省下了那笔生成费用?啥都是免费的,不过问题就是Cloudflare在这方面几乎是垄断地位,虽然国际大厂倒是不担心倒闭,不过万一挂了想再找个这样厉害的平台可就没了😆。 \ No newline at end of file From 99ec7de3cdf035444afce8beae9a707229011744 Mon Sep 17 00:00:00 2001 From: mayx Date: Wed, 3 Jul 2024 13:32:37 +0000 Subject: [PATCH 034/244] Update file 2024-07-03-ai-summary.md --- _posts/2024-07-03-ai-summary.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_posts/2024-07-03-ai-summary.md b/_posts/2024-07-03-ai-summary.md index dc79dd7..06dfa8a 100644 --- a/_posts/2024-07-03-ai-summary.md +++ b/_posts/2024-07-03-ai-summary.md @@ -236,6 +236,7 @@ export default { ``` 另外也写了配套的前端代码(用的jQuery,其实应该用Fetch的😂): ```html +{% raw %} AI摘要

正在生成中……

+{% endraw %} ``` 本来文章内容应该从html里读更好一些,但是标签啥的还得用正则去掉,感觉不如Liquid方便😂。另外博客计数器不应该用MD5的,但懒得改之前的数据了,还好Cloudflare Workers为了兼容是支持MD5的,免得我还得想办法改数据库里的数据。 From 2fd191d4186e663303f32a267ba331fb9baa8ad2 Mon Sep 17 00:00:00 2001 From: mayx Date: Wed, 3 Jul 2024 13:41:02 +0000 Subject: [PATCH 035/244] Update file 2024-07-03-ai-summary.md --- _posts/2024-07-03-ai-summary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-07-03-ai-summary.md b/_posts/2024-07-03-ai-summary.md index 06dfa8a..c44a41c 100644 --- a/_posts/2024-07-03-ai-summary.md +++ b/_posts/2024-07-03-ai-summary.md @@ -196,7 +196,7 @@ export default { ).bind(query).first("content"); } if (result != data) { - await db.prepare("UPDATE blog_summary SET content = ?1 WHERE id = ?2") + await db.prepare("UPDATE blog_summary SET content = ?1, summary = NULL WHERE id = ?2") .bind(data, query).run(); } return new Response("OK", { From dc37b705866a83ed004129824fcd77d8208e38ac Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 3 Aug 2024 17:33:00 +0000 Subject: [PATCH 036/244] Update file 2024-08-03-cangjie.md --- _posts/2024-08-03-cangjie.md | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 _posts/2024-08-03-cangjie.md diff --git a/_posts/2024-08-03-cangjie.md b/_posts/2024-08-03-cangjie.md new file mode 100644 index 0000000..efe7ffd --- /dev/null +++ b/_posts/2024-08-03-cangjie.md @@ -0,0 +1,58 @@ +--- +layout: post +title: 华为仓颉语言使用体验 +tags: [华为, 仓颉, 体验] +--- + + 看看“自研”的轮子有什么特别之处? + +# 起因 + 前段时间因为华为对它的仓颉编程语言开启了公测(公开内测),随后媒体又吹了一波。虽然华为最近也整了好多乱七八糟的东西,但至少我没有亲眼见过。既然这个仓颉的编译器公测了我就申请试试看呗,反正编译器又不需要特定的设备或者系统运行。 + 申请之后过了几天就通过了,然后编译器的安装包就可以在GitCode上下载。目前看起来没有开源,可以在Windows x64,macOS和Linux的x64和aarch64上运行和编译,另外也支持它的那个鸿蒙Next系统,虽然我申请了那个插件也通过了,但是毕竟没有真机,而且那个IDE挺大的也就算有模拟器可以用也懒得试😂。 + +# 编写体验 + 首先我下了Windows版的编译器,安装好之后看了看文档,感觉语法倒是没什么复杂的,不过和Python差别还是挺大的,所以还是得看着文档写😂。看了一圈之后首先写个九九乘法表试试看: +```kotlin +main() { + for (i in 1..10) { + for (j in 1..i + 1) { + print("${j}*${i}=${i*j}\t") + } + println() + } +} +``` + 编译之后运行倒是没什么问题,随后再写个递归版的试试看: +```kotlin +func row(i: Int): Unit{ + if(i < 10){ + col(i, 1) + println() + row(i + 1) + } +} + +func col(i:Int, j:Int): Unit{ + if(i >= j){ + print("${j}*${i}=${i*j}\t") + col(i, j + 1) + } +} + +main() { + row(1) +} +``` + 运行也没有问题,那就试试看把编译的产物放别的电脑运行试试看?结果就不能运行了。似乎是依赖了“libcangjie-runtime”和“libsecurec”这两个库,即使是在编译选项里开了静态编译也没有用,因为SDK里没有这两个的静态库文件,而且也没有它们的源代码……像Golang都是静态编译没有什么乱七八糟的依赖的啊…… + 另外我在Github上搜了一下,“libsecurec”这个库是有源代码的,叫做[libboundscheck](https://github.com/openeuler-mirror/libboundscheck),看名字是用来字符边界检查之类的库,似乎华为很多产品里都有用,在这个SDK里用的是[这个](https://github.com/openeuler-mirror/libboundscheck/tree/5701ca210dfb71037f3cb3340166d150917e8a4d)版本。 + 不过如果仓颉主要是给鸿蒙Next用的话,那个系统应该是预先有装仓颉的运行环境的,应该不静态编译也行。 + +# 对仓颉语言的看法 + 单从我上面写的这点代码看的话这语法比C都复杂😂,看了一下文档乱七八糟的概念还挺多,毕竟是融合了各种各样的语言,有Java的复杂,支持什么注解和反射之类的,还有TS的声明类型,变量还要指定变不变啥的,不过似乎没有关于异步的语法,可能是用线程弥补吧?其他近些年出的语言我没怎么接触过所以其他的不太清楚,不过让AI看了看我写的那段代码它说像Kotlin,然后讨论群里又说借鉴了50%的Rust🤣,确实融合的有点多。另外据说除了编译成机器码(CJNative)外还能编译成字节码(CJVM),不过CJVM在内测,不知道到时候会不会正式发布……除此之外也能调C和Python的库,似乎是用的FFI调用,可以不用单独开个进程然后去获得输出的值,效率应该还是挺高的。 + 但是要说这个语言有什么特别之处目前似乎也看不出来,不过毕竟仓颉语言算是给鸿蒙Next系统用的,学着iOS/macOS整Swift那样吧,但是在苹果系开发要想用苹果的框架,可能Swift是最好的选项。鸿蒙Next除了这个还整的什么ArkTS(那个可能算是小程序吧,毕竟那个没见过不知道底层是怎么运行的),至于鸿蒙Next能不能用其他语言开发目前也不知道(倒是能用NDK),要是能的话大家肯定是用现有已经开发好的改改然后移植到鸿蒙Next吧(前提是这些公司认为用鸿蒙Next的人使用他们的软件有足够的收益),如果不行从头开发成本就更高了,估计得劝退一大堆公司。毕竟鸿蒙Next没有历史,和Android以及iOS根本不能比,而且相比也没有解决什么痛点,另外其他手机厂商也不会考虑使用鸿蒙Next,只能像苹果一样搞成仅自家使用的系统。但是用户量根本和iPhone不能比,公司可不会听华为在网上的营销,毕竟公司是要实实在在赚钱的,靠营销只能忽悠普通人(但要是普通人买来发现除了国内大厂的软件其他软件全不能用估计也没人买了🤣)。 + 另外鸿蒙Next好像也会搞PC版,就像Mac那样。不过Mac是正经啥语言写的都能运行,而且相对还是挺开放的,到时候如果PC版的鸿蒙Next连终端个也没有,而且只能运行仓颉语言写的软件那怕是比其他Linux发行版还废了🤣。 + 不过如果用户侧如果搞不好的话说不定可以在服务器上用,毕竟服务器的话只在乎能不能写出这个软件,至于用什么语言写其实不重要,只要性能好就行,如果华为能整一批写仓颉的学生,还能把该整的库整好,也许会有公司考虑用,在做政府相关的项目说不定可以作为卖点🤣。 + +# 感想 + 虽然说华为整的这堆莫名其妙的东西也许没什么用,或者也可能会有些用,不过毕竟搞这些东西已经算是用公司的前景去赌未来了,虽然拿这些东西搞营销很恶心,但目前来看至少确实是有在也许没回报的东西上投真金白银的,还是挺厉害的。 + 但正因为它们营销搞太多了,到时候因为搞这些东西把公司玩死了我觉得也是大快人心的🤣🤣🤣。 \ No newline at end of file From 7a525073f93256f1bf4adf5c942b58431ac8b539 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 17 Aug 2024 11:40:35 +0000 Subject: [PATCH 037/244] Update file 2024-08-17-mac-mini.md --- _posts/2024-08-17-mac-mini.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 _posts/2024-08-17-mac-mini.md diff --git a/_posts/2024-08-17-mac-mini.md b/_posts/2024-08-17-mac-mini.md new file mode 100644 index 0000000..a806567 --- /dev/null +++ b/_posts/2024-08-17-mac-mini.md @@ -0,0 +1,23 @@ +--- +layout: post +title: Mac mini 2018使用体验 +tags: [Apple, Mac, 体验] +--- + + 买个快过时的产品是什么感受🤣 + +# 起因 + 最近由于某些原因需要一个装有macOS的电脑用来开发,虽然我自己[有MacBook Pro](/2023/02/03/mbp.html),但是我不太想让我的电脑上装一堆乱七八糟的环境,而且我的Mac只有8GiB内存😅,也不适合整比较复杂的东西。那既然这样上次不是[整了个黑苹果](/2024/06/16/hackintosh.html)吗?但是考虑到黑苹果不太可靠,可能更新着系统就挂了,而且用APFS文件还不好拷出来。那既然买白苹果是不是还是买M芯片的Mac mini比较好?但是这次开发的程序原来是在Intel的Mac上开发的,虽然有Rosetta 2,但是怕出一些莫名其妙的问题,然后再考虑到以后可能要升macOS 15(macOS 16应该就不再支持Intel的Mac了),所以最后还是整了个二手的8+512的Mac mini 2018(i5-8500B版)。 + +# 更换内存 + 刚拿到手的时候是8GiB内存,显然有点小了,不过Mac mini 2018是支持自己更换内存的,所以又额外买了两条16GiB内存。东西都到了之后就打算直接拆开来换,结果发现我手头没有T6H的螺丝刀🤣。我之前有买过一个很便宜的25合1的螺丝刀套装,里面包含梅花螺丝批头,但是没想到这个Mac mini上的螺丝上面有个柱子,普通的T6螺丝刀根本插不进去。没办法只好单独买了这个螺丝刀……在拿到螺丝刀之前,我觉得还是得看看教程,所以网上搜了个[iFixit的教程](https://zh.ifixit.com/Guide/Mac+mini+Late+2018+%E7%89%88%E5%86%85%E5%AD%98%E6%9B%B4%E6%8D%A2/115309),看了一下还好只有外壳的螺丝是带柱子的,不然又得买😂。 + 最后东西到齐之后按照上面的教程把内存换了,这下就成了32+512的Mac mini了,也算够用了。 + +# 使用体验 + 作为最后一代Intel的Mac,这个Mac mini其实和黑苹果的区别也就是T2芯片了。但要说这个T2芯片到底在使用体验上有啥区别,目前来看只能说几乎没有……当然不是完全没有,因为装有T2芯片以及之后的M芯片的Mac硬盘默认都是加了密的,所以在开启文件保险箱的时候瞬间就能打开,不需要额外的加密过程。黑苹果虽然也支持文件保险箱,似乎是装“AppleKeyFeeder-64.efi”这个驱动就可以,先不说这个东西会不会出问题,至少它在加解密的过程中需要占用CPU,在这个Mac上它的加解密都是在这个T2芯片上进行的,所以不会影响CPU性能,其实这要比Windows的Bitlocker要好一些,现在预装Windows的电脑基本上默认就开了Bitlocker,但使用肯定是要用CPU进行加解密的,多多少少会影响一点性能,在这个Mac上就不会有问题了。 + 除此之外就是无线网络了,我装的黑苹果是在台式机上装的,没有无线网卡,当然隔空投送也用不了。白苹果就可以,而且很快,我试了一下从我的MacBook传到Mac Mini速度最高可以达到400Mbps,当然和现在的Wi-Fi相比不算很快,但是在我用的设备里面已经算快的了 ~~(用的全是垃圾🤣)~~ + 另外我还听说T2芯片在视频编解码上有额外的优势,不过这个我没法测,毕竟买它又不是为了剪辑的,至于看视频基本上只要支持硬件解码,看4K视频都不会有压力,反正我试了我的黑苹果看4K也没有卡。 + 其他部分和黑苹果几乎没什么区别,毕竟都是Intel的芯片,黑苹果不能干的白苹果一样也不能干,没有因为多出来一个T2芯片就多出来运行ARM程序的能力,至于装Windows……当然两边都能装,白苹果有启动转换,黑苹果本来就能直接装。接下来的话就只能希望苹果在下一个macOS版本更新中淘汰掉没有T2芯片的Intel的Mac,这样黑苹果就彻底完蛋了,而这个有T2芯片的就能发挥它最后的价值了,只不过目前来看黑苹果在macOS 15的Beta版仍然可以装,看来是没什么希望了🤣。 + +# 感想 + 这么看来买这个Mac mini 2018似乎意义不大啊,不过毕竟要长期用,为了可靠性多花点钱也没什么问题,不过这个二手的Mac mini 2018居然比M1的Mac Mini还要贵😂,明明性能要更差啊……不过考虑到M芯片的加内存那么贵,而且这个Intel芯片的以后就算不用macOS还能装Windows,也许就是这个原因所以更贵吧? \ No newline at end of file From 46f1b8d742726e126cae8f9b4e3004af07014d5e Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 2 Sep 2024 09:40:45 +0000 Subject: [PATCH 038/244] Update file 2024-09-02-gmssl.md --- _posts/2024-09-02-gmssl.md | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 _posts/2024-09-02-gmssl.md diff --git a/_posts/2024-09-02-gmssl.md b/_posts/2024-09-02-gmssl.md new file mode 100644 index 0000000..676e1d3 --- /dev/null +++ b/_posts/2024-09-02-gmssl.md @@ -0,0 +1,81 @@ +--- +layout: post +title: Python国密算法使用探索 +tags: [Python, GmSSL, 国密] +--- + + 使用罕见的算法是什么感受😁 + +# 起因 + 前段时间因为某些原因需要对某些东西进行密评改造,需要使用国密算法。虽然国密算法也算进入标准了,但是网上能搜到的资料还是太少了(尤其是Python的,大多资料都是Java的),所以我打算自己研究研究。 + +# 关于Python使用国密算法的方式 + 其实在新版OpenSSL中已经支持了国密算法,比如SM3还有SM4,不过[pyOpenSSL](https://github.com/pyca/pyopenssl)似乎只有对非对称加密算法的支持……我倒是不在乎,因为在我实际应用里加解密都是服务器密码机处理的,我自己连密钥也看不到,所以不需要管怎么实现。但是签名验签还有摘要算法之类的理论上应该是可以自己实现的,毕竟算法是公开的。 + 关于摘要算法SM3我搜了一下,似乎因为它已经进入标准了,至少在新版的Python中可以用`hashlib.new("sm3")`这样的方式进行计算,但是旧版的Python用不了……所以如果要在旧版Python上处理还得自己想办法。 + 既然标准库不太能满足,那第三方库选哪个比较好呢?我看用的比较多的一个是封装C库[GmSSL](https://github.com/guanzhi/GmSSL)的[GmSSL-Python](https://github.com/GmSSL/GmSSL-Python),想要安装得先安装那个C库;还有一个是纯Python实现的[gmssl](https://github.com/duanhongyi/gmssl)。对我来说的话我更喜欢后面那个纯python实现的,虽然效率低了点,但是看起来比较简单(虽然看起来不是很专业🤣),那个C库包装的感觉有点复杂……而且这两个库有冲突,所以最终我选择了那个纯Python实现的版本。 + +# 使用SM2withSM3进行验签 + 在一些挑战应答方式的登录方式中就需要用到这种东西,服务器发送一个随机数让客户端用私钥签名,然后服务器用公钥进行验签。我看了一下那个库的“gmssl.sm2.CryptSM2”中有个verify_with_sm3方法挺符合需求的,但有个问题是它这个CryptSM2传入的公钥是串数字,但客户端传来的是证书……看来还得解析证书,我看pyOpenSSL库里有加载证书还有导出公钥的方法,但是那个导出的公钥也不是一串数字……后来看了半天,发现导出的公钥的倒数130位才是公钥😅……最终把所有的值带进去试了一下终于没问题了,最终的代码如下: +```python +import OpenSSL.crypto +from gmssl import sm2 +import base64 + +certSign = "" # 证书 +signBytes = b"" # 签名 +inData = b"" # 被签名的值 + +sm2.CryptSM2( + private_key="", + public_key=OpenSSL.crypto.dump_publickey( + OpenSSL.crypto.FILETYPE_ASN1, + OpenSSL.crypto.load_certificate( + OpenSSL.crypto.FILETYPE_PEM, + f"""-----BEGIN CERTIFICATE----- +{certSign} +-----END CERTIFICATE-----""".encode(), + ).get_pubkey(), + ).hex()[-128:], + asn1=True, +).verify_with_sm3(signBytes.hex(), inData) +``` + +# 使用HMAC-SM3对数据进行消息验证 + 这个其实新版的Python可以直接用,因为新版Python的hashlib里有SM3,所以一句 +```python +hmac.new(key, data, digestmod="sm3").hexdigest() +``` + 就可以了,但是我用的是旧版的Python(macOS自带的3.9.6🤣)不支持……那怎么办呢?我看了一下这个函数的注释写的“digestmod”这个参数除了传hashlib支持的方法之外还可以传符合[PEP 247](https://peps.python.org/pep-0247/)的模块。显然无论是GmSSL-Python还是gmssl都没有符合这个规范。不过我可以自己写个适配器来适配这个规范。所以最终只好自己写一下了: +```python +import copy +import hmac +from gmssl import sm3 + +class sm3_adapter: + def __init__(self): + self.msg = [] + self.digest_size = 32 + self.block_size = 64 + + def new(self): + self.msg = [] + + def update(self, data): + self.msg += list(data) + + def copy(self): + return copy.deepcopy(self) + + def digest(self): + return bytes.fromhex(self.hexdigest()) + + def hexdigest(self): + return sm3.sm3_hash(self.msg) + +key = b"" # 密钥 +data = b"" # 数据 +hmac.new(key, data, digestmod=sm3_adapter).hexdigest() +``` + +# 感想 + 这么看来使用国密算法加密倒是也没很复杂,但是和国际标准相比也没什么优势。虽然有些地方强制使用那确实没啥办法,但是想要普及肯定是不用想了,另外我自己的东西肯定是不敢用国密,虽然进了标准而且也开放了算法,但是很难说会不会像Dual_EC_DRBG算法那样偷偷插了后门 ~~(虽然我觉得他们应该没这个实力🤣)~~ ,但国际算法有后门我不怕,国内算法有后门那就吓人了🤣。 \ No newline at end of file From 593b4fa00360a30fd50afe2bed68df51d623a9c3 Mon Sep 17 00:00:00 2001 From: mayx Date: Thu, 26 Sep 2024 10:15:00 +0000 Subject: [PATCH 039/244] Update main.js --- js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/main.js b/js/main.js index 0377ea1..5684316 100644 --- a/js/main.js +++ b/js/main.js @@ -53,4 +53,4 @@ if (daysold > 90) { } var message_Path = '/Live2dHistoire/live2d/'; -var talkAPI = "https://turing-api.mayx.eu.org/"; +var talkAPI = "https://summary.mayx.workers.dev/ai_chat"; From 50c6c49c4c9e71eb9b4ddf22dd59233c9731e8aa Mon Sep 17 00:00:00 2001 From: mayx Date: Fri, 27 Sep 2024 03:24:54 +0000 Subject: [PATCH 040/244] Update 2 files - /_posts/2024-09-27-rag.md - /_posts/2024-07-03-ai-summary.md --- _posts/2024-07-03-ai-summary.md | 2 +- _posts/2024-09-27-rag.md | 335 ++++++++++++++++++++++++++++++++ 2 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 _posts/2024-09-27-rag.md diff --git a/_posts/2024-07-03-ai-summary.md b/_posts/2024-07-03-ai-summary.md index c44a41c..62b85dd 100644 --- a/_posts/2024-07-03-ai-summary.md +++ b/_posts/2024-07-03-ai-summary.md @@ -288,7 +288,7 @@ export default { 不过毕竟Workers本身是有每日调用次数限制的,自己部署当然更好。方法也很简单,首先在D1里创建一个数据库,然后创建一个Workers,在变量里绑定AI和新建的D1数据库,名字要起成blog_summary,如果想换名字就要改代码,里面建一张叫做blog_summary的表,需要有3个字段,分别是id、content、summary,都是text类型,如果想用博客计数器功能就再加一张counter表,一个是url,text类型,另一个是counter,int类型。本来博客计数器接口名字也打算用counter的,结果不知道AdBlock有什么大病,居然会屏蔽“counter?id=”这样的请求😆,害的我只能改成count_click这样的名字了。 # 其他想法 - 加了这个功能之后感觉效果还挺不错的,这下就有点想加点别的功能了,比如文章推荐和知识库问答啥的,不过这个似乎需要什么向量数据库,而且数据需要进行“嵌入”处理,这用现有的东西感觉难度实在是太高了所以就算了……另外还想用文生图模型给我的文章加个头图,不过我天天写的都是些技术文章,没啥图可加吧🤣。其他的之后再看看有什么有意思的功能再加吧。 + 加了这个功能之后感觉效果还挺不错的,这下就有点想加点别的功能了,比如文章推荐和知识库问答啥的, ~~不过这个似乎需要什么向量数据库,而且数据需要进行“嵌入”处理,这用现有的东西感觉难度实在是太高了所以就算了……~~ (在2024.09.27中[已经实现了](/2024/09/27/rag.html)) 另外还想用文生图模型给我的文章加个头图,不过我天天写的都是些技术文章,没啥图可加吧🤣。其他的之后再看看有什么有意思的功能再加吧。 # 感想 Cloudflare真不愧是赛博活佛,这波操作下来不就省下了那笔生成费用?啥都是免费的,不过问题就是Cloudflare在这方面几乎是垄断地位,虽然国际大厂倒是不担心倒闭,不过万一挂了想再找个这样厉害的平台可就没了😆。 \ No newline at end of file diff --git a/_posts/2024-09-27-rag.md b/_posts/2024-09-27-rag.md new file mode 100644 index 0000000..6d3830c --- /dev/null +++ b/_posts/2024-09-27-rag.md @@ -0,0 +1,335 @@ +--- +layout: post +title: 用CF Vectorize把博客作为聊天AI的知识库 +tags: [Cloudflare, Workers, AI, RAG, Vectorize] +--- + + 有了Cloudflare之后,什么都免费了! + +# 起因 + 前段时间我用[Cloudflare Workers给博客加了AI摘要](/2024/07/03/ai-summary.html),那时候其实就想做个带RAG功能的聊天机器人,不过这个操作需要嵌入模型和向量数据库。那时候Cloudflare倒是有这些东西,但是向量数据库Vectorize还没有免费,不过我仔细看了文档,他们保证过段时间一定会免费的。直到前两天我打开Cloudflare之后发现真的免费了!有了向量数据库之后我就可以让博客的机器人(在电脑端可以在左下角和[伊斯特瓦尔](/Live2dHistoire/)对话)获取到我博客的内容了。 + +# 学习RAG + RAG的原理还是挺简单的,简单来说就是在不用让LLM读取完整的数据库,但是能通过某种手段让它获取到和问题相关性最高的内容然后进行参考生成,至于这个“某种手段”一般有两种方式,一种是比较传统的分词+词频统计查询,这种其实我不会🤣,没看到Cloudflare能用的比较好的实现方式,另外这种方式的缺陷是必须包含关键词,如果没有关键词就查不出来,所以这次就不采用这种方法了。另一种就是使用嵌入模型+向量数据库了,这个具体实现我不太清楚,不过原理似乎是把各种词放在一个多维空间中,然后意思相近的词在训练嵌入模型的时候它们的距离就会比较近,当使用这个嵌入模型处理文章的时候它就会综合训练数据把内容放在一个合适的位置,这样传入的问题就可以用余弦相似度之类的算法来查询问题和哪个文章的向量最相近。至于这个查询就需要向量数据库来处理了。 + 原理还是挺简单的,实现因为有相应的模型,也不需要考虑它们的具体实现,所以也很简单,所以接下来就来试试看吧! + +# 用Cloudflare Workers实现 + 在动手之前,先看看Cloudflare官方给的[教程](https://developers.cloudflare.com/workers-ai/tutorials/build-a-retrieval-augmented-generation-ai)吧,其实看起来还是挺简单的(毕竟官方推荐难度是初学者水平😆)。不过有个很严重的问题,官方创建向量数据库要用它那个命令行操作,我又不是JS开发者,一点也不想用它那个程序,但是它在dashboard上也没有创建的按钮啊……那怎么办呢?还好[文档](https://developers.cloudflare.com/vectorize/best-practices/create-indexes/)中说了可以用HTTP API进行操作。另外还有一个问题,它的API要创建一个令牌才能用,我也不想创建令牌,怎么办呢?还好可以直接用dashboard中抓的包当作令牌来用,这样第一步创建就完成了。 + 接下来要和Worker进行绑定,还好这一步可以直接在面板操作,没有什么莫名其妙的配置文件来恶心我😂,配置好之后就可以开始写代码了。 + 首先确定一下流程,当我写完文章之后会用AI摘要获取文章内容,这时候就可以进行用嵌入模型向量化然后存数据库了。我本来想用文章内容进行向量化的,但是我发现Cloudflare给的只有智源的英文嵌入模型😅(不知道以后会不会加中文的嵌入模型……),而且不是Beta版会消耗免费额度,但也没的选了。既然根据上文来看嵌入模型是涉及词义的,中文肯定不能拿给英文的嵌入模型用,那怎么办呢?还好Cloudflare的模型多,有个Meta的翻译模型可以用,我可以把中文先翻译成英文然后再进行向量化,这样不就能比较准确了嘛。但是这样速度会慢不少,所以我想了一下干脆用摘要内容翻译再向量化吧,反正摘要也基本包含我文章的内容了,给AI也够用了,这样速度应该能快不少。当然这样的话问题也得先翻译向量化再查询了。 + 那么接下来就写代码吧(直接拿上次AI摘要的代码改的): +```javascript +async function sha(str) { + const encoder = new TextEncoder(); + const data = encoder.encode(str); + const hashBuffer = await crypto.subtle.digest("SHA-256", data); + const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array + const hashHex = hashArray + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); // convert bytes to hex string + return hashHex; +} +async function md5(str) { + const encoder = new TextEncoder(); + const data = encoder.encode(str); + const hashBuffer = await crypto.subtle.digest("MD5", data); + const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array + const hashHex = hashArray + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); // convert bytes to hex string + return hashHex; +} + +export default { + async fetch(request, env, ctx) { + const db = env.blog_summary; + const url = new URL(request.url); + const query = decodeURIComponent(url.searchParams.get('id')); + const commonHeader = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': "*", + 'Access-Control-Allow-Headers': "*", + 'Access-Control-Max-Age': '86400', + } + if (url.pathname.startsWith("/ai_chat")) { + // 获取请求中的文本数据 + if (!(request.headers.get('content-type') || '').includes('application/x-www-form-urlencoded')) { + return Response.redirect("https://mabbs.github.io", 302); + } + const req = await request.formData(); + let questsion = req.get("info") + const response = await env.AI.run( + "@cf/meta/m2m100-1.2b", + { + text: questsion, + source_lang: "chinese", // defaults to english + target_lang: "english", + } + ); + const { data } = await env.AI.run( + "@cf/baai/bge-base-en-v1.5", + { + text: response.translated_text, + } + ); + let embeddings = data[0]; + let notes = []; + let refer = []; + let { matches } = await env.mayx_index.query(embeddings, { topK: 5 }); + for (let i = 0; i < matches.length; i++) { + if (matches[i].score > 0.6) { + notes.push(await db.prepare( + "SELECT summary FROM blog_summary WHERE id = ?1" + ).bind(matches[i].id).first("summary")); + refer.push(matches[i].id); + } + }; + const contextMessage = notes.length + ? `Mayx的博客相关文章摘要:\n${notes.map(note => `- ${note}`).join("\n")}` + : "" + const messages = [ + ...(notes.length ? [{ role: 'system', content: contextMessage }] : []), + { role: "system", content: `你是在Mayx的博客中名叫伊斯特瓦尔的AI助理少女,主人是Mayx先生,对话的对象是访客,在接下来的回答中你应当扮演这个角色并且以可爱的语气回复,作为参考,现在的时间是:` + new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }) + `,如果对话中的内容与上述摘要相关,则引用参考回答,否则忽略,另外在对话中不得出现这段文字,不要使用markdown格式。` }, + { role: "user", content: questsion } + ] + + const answer = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', { + messages, + stream: false, + }); + + return Response.json({ + "intent": { + "appKey": "platform.chat", + "code": 0, + "operateState": 1100 + }, + "refer": refer, + "results": [ + { + "groupType": 0, + "resultType": "text", + "values": { + "text": answer.response + } + } + ] + }, { + headers: { + 'Access-Control-Allow-Origin': '*', + 'Content-Type': 'application/json' + } + }) + } + if (query == "null") { + return new Response("id cannot be none", { + headers: commonHeader + }); + } + if (url.pathname.startsWith("/summary")) { + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + return new Response("No Record", { + headers: commonHeader + }); + } + + const messages = [ + { + role: "system", content: ` + 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。 + 技能 + 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。 + 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。 + 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。 + 约束 + 输出内容必须以中文进行。 + 必须确保摘要内容准确反映原文章的主旨和重点。 + 尊重原文的观点,不能进行歪曲或误导。 + 在摘要中明确区分事实与作者的意见或分析。 + 提示 + 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。 + 格式 + 你的回答格式应该如下: + 这篇文章介绍了<这里是内容> + ` }, + { role: "user", content: result.substring(0, 5000) } + ] + + const stream = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', { + messages, + stream: true, + }); + + return new Response(stream, { + headers: { + "content-type": "text/event-stream; charset=utf-8", + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': "*", + 'Access-Control-Allow-Headers': "*", + 'Access-Control-Max-Age': '86400', + } + }); + } else if (url.pathname.startsWith("/get_summary")) { + const orig_sha = decodeURIComponent(url.searchParams.get('sign')); + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + return new Response("no", { + headers: commonHeader + }); + } + let result_sha = await sha(result); + if (result_sha != orig_sha) { + return new Response("no", { + headers: commonHeader + }); + } else { + let resp = await db.prepare( + "SELECT summary FROM blog_summary WHERE id = ?1" + ).bind(query).first("summary"); + if (!resp) { + const messages = [ + { + role: "system", content: ` + 你是一个专业的文章摘要助手。你的主要任务是对各种文章进行精炼和摘要,帮助用户快速了解文章的核心内容。你读完整篇文章后,能够提炼出文章的关键信息,以及作者的主要观点和结论。 + 技能 + 精炼摘要:能够快速阅读并理解文章内容,提取出文章的主要关键点,用简洁明了的中文进行阐述。 + 关键信息提取:识别文章中的重要信息,如主要观点、数据支持、结论等,并有效地进行总结。 + 客观中立:在摘要过程中保持客观中立的态度,避免引入个人偏见。 + 约束 + 输出内容必须以中文进行。 + 必须确保摘要内容准确反映原文章的主旨和重点。 + 尊重原文的观点,不能进行歪曲或误导。 + 在摘要中明确区分事实与作者的意见或分析。 + 提示 + 不需要在回答中注明摘要(不需要使用冒号),只需要输出内容。 + 格式 + 你的回答格式应该如下: + 这篇文章介绍了<这里是内容> + ` }, + { role: "user", content: result.substring(0, 5000) } + ] + + const answer = await env.AI.run('@cf/qwen/qwen1.5-14b-chat-awq', { + messages, + stream: false, + }); + resp = answer.response + await db.prepare("UPDATE blog_summary SET summary = ?1 WHERE id = ?2") + .bind(resp, query).run(); + } + let is_vec = await db.prepare( + "SELECT `is_vec` FROM blog_summary WHERE id = ?1" + ).bind(query).first("is_vec"); + if (is_vec == 0) { + const response = await env.AI.run( + "@cf/meta/m2m100-1.2b", + { + text: resp, + source_lang: "chinese", // defaults to english + target_lang: "english", + } + ); + const { data } = await env.AI.run( + "@cf/baai/bge-base-en-v1.5", + { + text: response.translated_text, + } + ); + let embeddings = data[0]; + await env.mayx_index.upsert([{ + id: query, + values: embeddings + }]); + await db.prepare("UPDATE blog_summary SET is_vec = 1 WHERE id = ?1") + .bind(query).run(); + } + return new Response(resp, { + headers: commonHeader + }); + } + } else if (url.pathname.startsWith("/is_uploaded")) { + const orig_sha = decodeURIComponent(url.searchParams.get('sign')); + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + return new Response("no", { + headers: commonHeader + }); + } + let result_sha = await sha(result); + if (result_sha != orig_sha) { + return new Response("no", { + headers: commonHeader + }); + } else { + return new Response("yes", { + headers: commonHeader + }); + } + } else if (url.pathname.startsWith("/upload_blog")) { + if (request.method == "POST") { + const data = await request.text(); + let result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + if (!result) { + await db.prepare("INSERT INTO blog_summary(id, content) VALUES (?1, ?2)") + .bind(query, data).run(); + result = await db.prepare( + "SELECT content FROM blog_summary WHERE id = ?1" + ).bind(query).first("content"); + } + if (result != data) { + await db.prepare("UPDATE blog_summary SET content = ?1, summary = NULL, is_vec = 0 WHERE id = ?2") + .bind(data, query).run(); + } + return new Response("OK", { + headers: commonHeader + }); + } else { + return new Response("need post", { + headers: commonHeader + }); + } + } else if (url.pathname.startsWith("/count_click")) { + let id_md5 = await md5(query); + let count = await db.prepare("SELECT `counter` FROM `counter` WHERE `url` = ?1") + .bind(id_md5).first("counter"); + if (url.pathname.startsWith("/count_click_add")) { + if (!count) { + await db.prepare("INSERT INTO `counter` (`url`, `counter`) VALUES (?1, 1)") + .bind(id_md5).run(); + count = 1; + } else { + count += 1; + await db.prepare("UPDATE `counter` SET `counter` = ?1 WHERE `url` = ?2") + .bind(count, id_md5).run(); + } + } + if (!count) { + count = 0; + } + return new Response(count, { + headers: commonHeader + }); + } else { + return Response.redirect("https://mabbs.github.io", 302) + } + } +} +``` + +# 使用方法 + 为了避免重复生成向量(主要是不知道它这个数据库怎么根据id进行查询),所以在D1数据库里新加了一个数字类型的字段“is_vec”,另外就是创建向量数据库,创建方法看官方文档吧,如果不想用那个命令行工具可以看[API文档](https://developers.cloudflare.com/api/operations/vectorize-create-vectorize-index)。因为那个嵌入模型生成的维度是768,所以创建这个数据库的时候维度也是768。度量算法反正推荐的是cosine,其他的没试过不知道效果怎么样。最终如果想用我的代码,需要在Worker的设置页面中把绑定的向量数据库变量设置成“mayx_index”,如果想用其他的可以自己修改代码。 + +# 其他想法 + 其实我也想加推荐文章和智能搜索的,但就是因为没有中文嵌入模型要翻译太费时间😅,所以就算啦,至于其他的功能回头看看还有什么AI可以干的有趣功能吧。 + +# 感想 + Cloudflare实在是太强了,什么都能免费,这个RAG功能其他家都是拿出去卖的,他们居然免费!唯一可惜的就是仅此一家,免费中的垄断地位了,希望Cloudflare能不忘初心,不要倒闭或者变质了🤣。 \ No newline at end of file From 550321e80acceb1d4b0bc442964014f80e1d88d3 Mon Sep 17 00:00:00 2001 From: mayx Date: Sun, 29 Sep 2024 15:20:22 +0000 Subject: [PATCH 041/244] Update 2 files - /_layouts/default.html - /search.html --- _layouts/default.html | 12 ++++++++++++ search.html | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/_layouts/default.html b/_layouts/default.html index ab90993..ff80871 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -27,6 +27,18 @@ gtag('config', '{{ site.google_analytics }}'); var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}"); + function getSearchJSON(callback) { + var searchData = JSON.parse(localStorage.getItem(lastUpdated)); + if (!searchData) { + localStorage.clear(); + $.getJSON("search.json", function (data) { + localStorage.setItem(lastUpdated, JSON.stringify(data)); + callback(data); + }); + } else { + callback(searchData); + } + } {% endif %}
{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %} {% endif %} {% if page.tags %} tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件 @@ -132,31 +132,16 @@ $.get(BlogAPI + "/suggest?id=" + blogurl + "&update=" + lastUpdated.valueOf(), f
\ No newline at end of file diff --git a/js/main.js b/js/main.js index 72c46a0..f4b2a99 100644 --- a/js/main.js +++ b/js/main.js @@ -42,16 +42,8 @@ $(function () { }); $(function() { - function getQueryVariable(variable){ - var query = window.location.search.substring(1); - var vars = query.split("&"); - for (var i=0;i + # 其他平台博客(备用) -- -- -- -- -- -- -- -- +{% for item in site.data.proxylist.others %}- <{{ item.url }}> +{% endfor %} From f455ccfdd7605473e7e77f7923ca950b5a3b6e9d Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 5 Apr 2025 11:02:44 +0000 Subject: [PATCH 089/244] =?UTF-8?q?=E7=BC=96=E8=BE=91proxylist.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proxylist.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/proxylist.md b/proxylist.md index c524437..8bd83a8 100644 --- a/proxylist.md +++ b/proxylist.md @@ -10,15 +10,15 @@ title: 代理列表 # 代理列表 考虑到中国对于Github Pages在很多地区都有一定程度的解析异常,所以我为我的博客做了很多反向代理。以下代理站均为官方授权: (根据可能的可用性排序) -{% for item in site.data.proxylist.proxies %}- <{{ item.url }}> +{% for item in site.data.proxylist.proxies %}- <{{ item }}> {% endfor %} # 镜像列表 由于[Github已经不再可信](/2022/01/04/banned.html),所以现在提供以下镜像站: -{% for item in site.data.proxylist.mirrors %}- <{{ item.url }}> +{% for item in site.data.proxylist.mirrors %}- <{{ item }}> {% endfor %} -# 网站结构 +# 服务架构 ```mermaid graph LR; GH@{ shape: bow-rect, label: "GitHub" } @@ -34,7 +34,6 @@ graph LR; Netlify@{ shape: docs, label: "Netlify" } SH@{ shape: docs, label: "statichost.eu" } DA@{ shape: docs, label: "dAppling" } - EOP@{ shape: docs, label: "EdgeOne Pages" } CFW@{ shape: curv-trap, label: "CloudFlare Workers" } Deno@{ shape: curv-trap, label: "Deno" } Glitch@{ shape: curv-trap, label: "Glitch" } @@ -54,7 +53,6 @@ graph LR; DA Vercel Netlify - EOP end subgraph Proxies @@ -73,7 +71,6 @@ graph LR; GH -- Sync --> GE GH --> GHP & SH & FELH & DA & Netlify GL --> CFP & Vercel & GLP - GE --> EOP CFW --> GHP Deno --> GHP @@ -93,5 +90,5 @@ graph LR; # 其他平台博客(备用) -{% for item in site.data.proxylist.others %}- <{{ item.url }}> +{% for item in site.data.proxylist.others %}- <{{ item }}> {% endfor %} From 2f6eadd14f1b378f1a7ebdb348d8fa78c87a3e86 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 5 Apr 2025 12:49:05 +0000 Subject: [PATCH 090/244] Update 3 files - /proxylist.md - /README.md - /_data/proxylist.yml --- README.md | 1 + _data/proxylist.yml | 1 + proxylist.md | 32 +++++++++++++++++++++++--------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f4c19f6..42d7c10 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Powered by [Jekyll](https://github.com/jekyll/jekyll) [网易云音乐](https://music.163.com/) [CDNJS](https://cdnjs.com/) +[jsDelivr](https://www.jsdelivr.com/) ## 版权声明 未经作者同意,请勿转载 diff --git a/_data/proxylist.yml b/_data/proxylist.yml index c08cc86..3200106 100644 --- a/_data/proxylist.yml +++ b/_data/proxylist.yml @@ -13,6 +13,7 @@ mirrors: - https://mayx.4everland.app/ - https://mayx.dappling.network/ - https://mayx-blog.statichost.eu/ +- https://mayx-blog-pm8qmrzj.edgeone.app/ others: - https://unmayx.blogspot.com/ - https://unmayx.blog.fc2blog.us/ diff --git a/proxylist.md b/proxylist.md index 8bd83a8..f004cc0 100644 --- a/proxylist.md +++ b/proxylist.md @@ -21,6 +21,7 @@ title: 代理列表 # 服务架构 ```mermaid graph LR; + Users@{ shape: stadium, label: "Users" } GH@{ shape: bow-rect, label: "GitHub" } GL@{ shape: bow-rect, label: "GitLab" } GE@{ shape: bow-rect, label: "Gitee" } @@ -34,7 +35,10 @@ graph LR; Netlify@{ shape: docs, label: "Netlify" } SH@{ shape: docs, label: "statichost.eu" } DA@{ shape: docs, label: "dAppling" } - CFW@{ shape: curv-trap, label: "CloudFlare Workers" } + EOP@{ shape: docs, label: "EdgeOne Pages" } + CFW@{ label: "CloudFlare Workers" } + CFAI@{ shape: procs, label: "CloudFlare AI" } + CFD@{ shape: lin-cyl, label: "CloudFlare D1" } Deno@{ shape: curv-trap, label: "Deno" } Glitch@{ shape: curv-trap, label: "Glitch" } Other@{ shape: curv-trap, label: "Other..." } @@ -53,10 +57,16 @@ graph LR; DA Vercel Netlify + EOP + end + + subgraph API[API Service] + CFAI + CFD + CFW end subgraph Proxies - CFW Deno Glitch Other @@ -69,14 +79,18 @@ graph LR; GH <--Sync--> GL GH -- Sync --> GE - GH --> GHP & SH & FELH & DA & Netlify + GH -- Deploy --> GHP & SH & FELH & DA & Netlify GL --> CFP & Vercel & GLP - - CFW --> GHP - Deno --> GHP - Glitch --> GHP - Other --> GHP - + CFW -- Reverse Proxy --> GHP + Deno -- Reverse Proxy --> GHP + Glitch -- Reverse Proxy --> GHP + Other -- Reverse Proxy --> GHP + CFD <--> CFW + CFAI <--> CFW + GE -- Deploy --> EOP + API -- API/Proxy Service <--> Users + Pages -- Serviced --> Users + Proxies -- Serviced --> Users FELH --> IPFS & GF DA --> IPFS ``` From 05ba801c231823de42ca7119ddda7839a2bd9ba0 Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 5 Apr 2025 14:57:04 +0000 Subject: [PATCH 091/244] Update 3 files - /_data/proxylist.yml - /_posts/2025-04-04-search.md - /proxylist.md --- _data/proxylist.yml | 1 - _posts/2025-04-04-search.md | 6 +++--- proxylist.md | 9 +++------ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/_data/proxylist.yml b/_data/proxylist.yml index 3200106..c08cc86 100644 --- a/_data/proxylist.yml +++ b/_data/proxylist.yml @@ -13,7 +13,6 @@ mirrors: - https://mayx.4everland.app/ - https://mayx.dappling.network/ - https://mayx-blog.statichost.eu/ -- https://mayx-blog-pm8qmrzj.edgeone.app/ others: - https://unmayx.blogspot.com/ - https://unmayx.blog.fc2blog.us/ diff --git a/_posts/2025-04-04-search.md b/_posts/2025-04-04-search.md index 7c8e322..913564a 100644 --- a/_posts/2025-04-04-search.md +++ b/_posts/2025-04-04-search.md @@ -7,12 +7,12 @@ tags: [博客, 搜索, 优化] 看看其他的博客也会有新的灵感啊~ # 起因 - 前段时间,我闲来无事在GitHub上搜和我使用相同模板[minimal](https://github.com/pages-themes/minimal)的博客。但搜索结果中有许多人用这个模板制作简历或作品集,这让我有些失望。这倒也能理解,因为这个模版并不算博客模板,没有文章列表之类的代码,这些都只能自己写。不过多找找还是能找到一些的,毕竟这个模板在GitHub Pages中算是最受欢迎,至少符合大众的审美。像我就搜到了一个叫[Guanzhou Hu的博客](https://github.com/josehu07/josehu07.github.io),他对模板的样式做了不少的改动,而且改的还挺好看的,尤其是右上角的导航栏,看起来挺有意思,不过这个源代码……导航栏有点硬编码的感觉,我不是很喜欢这种实现方式…… + 前段时间,我闲来无事在GitHub上搜和我使用相同模板[minimal](https://github.com/pages-themes/minimal)的博客。但搜索结果中有许多人用这个模板制作的是简历或作品集,这让我有些失望。不过这倒也能理解,因为这个模版并不算博客模板,没有文章列表之类的代码,这些都只能自己写。当然多找找还是能找到一些的,毕竟这个模板在GitHub Pages中算是最受欢迎,至少符合大众的审美。像我就搜到了一个叫[Guanzhou Hu的博客](https://github.com/josehu07/josehu07.github.io),他对模板的样式做了不少的改动,而且改的还挺好看的,尤其是右上角的导航栏,看起来挺有意思,只是这个源代码……导航栏有点硬编码的感觉,我不是很喜欢这种实现方式…… # 使用标签作为关键词进行搜索 之后我又看了看其他博客,看到了[Matt Walker Blog](https://github.com/mhwalker/mhwalker.github.io)。他没有对模板做很多改动,只是把section元素变得更宽了,但是他没有改手机版自适应的样式,导致界面基本上没法在手机上查看。不过在他的首页中,我对他把文章标签放在文章列表这个操作非常感兴趣,因为每次我都有给文章打标签,但是几乎没什么用。他的标签点进去之后会跳转到该标签下的所有文章,我其实很早就想做这个功能了,但是在不用插件的情况下Jekyll基本上做不出来这种功能,因为没有插件的情况下是不能使用Liquid标签创建文件的,我看了下他的实现,原来是提前创建好的标签页面然后进行筛选的,这个实现我也不喜欢,这样的话我每次打标签都要新建一个标签对应的页面,这种事情不让程序做我会很不爽……(其实现在的GitHub Pages构建网站都是用的Actions了,完全可以自己写一个可以使用插件的Actions来进行构建,不过我也懒得折腾了🤣) - 要么还有一个选择,可以单独搞一个页面,里面有所有标签对应的文章,点击文章的标签之后使用锚链接定位到对应标签所在的位置。不过这样会导致一个页面有可能有一堆相同的文章链接,结果这个页面比归档页面的链接还多,那就感觉有点糟糕了…… - 不过我想起来以前做的[博客全文搜索功能](/2021/07/23/search.html),如果把标签作为关键词进行查询,那也能起到筛选出标签对应文章的作用吧?而且这样即使我没给那个文章打标签也能搜出来,其实也算不错的选择,而且自从我做出来那个全文搜索的功能之后也没用过几次,没有关键词的话也一时半会想不出来搜什么比较好。于是说做就做,直接把Matt Walker Blog那段在文章列表生成标签的代码复制过来,感觉好像还不错😆? + 要么还有一个选择,可以单独搞一个页面,里面有所有标签对应的文章,点击文章的标签之后使用锚链接定位到对应标签所在的位置。但这样会导致一个页面有可能有一堆相同的文章链接,结果这个页面比归档页面的链接还多,那就感觉有点糟糕了…… + 不过我想起来以前做的[博客全文搜索功能](/2021/07/23/search.html),如果把标签作为关键词进行查询,那也能起到筛选出标签对应文章的作用吧?而且这样即使我没给那个文章打标签也能搜出来,其实也算不错的选择,另外自从我做出来那个全文搜索的功能之后也没用过几次,没有关键词的话也一时半会想不出来搜什么比较好。于是说做就做,直接把Matt Walker Blog那段在文章列表生成标签的代码复制过来,感觉好像还不错😆? 顺便我也把文章里面的标签也加了链接到搜索的功能,不过原来的代码用的是`.join`实现的,现在加上这个功能的话就只能老老实实用循环写了😥…… # 搜索后使用高亮标记关键词 diff --git a/proxylist.md b/proxylist.md index f004cc0..2780ab9 100644 --- a/proxylist.md +++ b/proxylist.md @@ -35,7 +35,6 @@ graph LR; Netlify@{ shape: docs, label: "Netlify" } SH@{ shape: docs, label: "statichost.eu" } DA@{ shape: docs, label: "dAppling" } - EOP@{ shape: docs, label: "EdgeOne Pages" } CFW@{ label: "CloudFlare Workers" } CFAI@{ shape: procs, label: "CloudFlare AI" } CFD@{ shape: lin-cyl, label: "CloudFlare D1" } @@ -57,7 +56,6 @@ graph LR; DA Vercel Netlify - EOP end subgraph API[API Service] @@ -72,22 +70,21 @@ graph LR; Other end - subgraph DS + subgraph DS[Decentralized storage] IPFS GF end GH <--Sync--> GL GH -- Sync --> GE - GH -- Deploy --> GHP & SH & FELH & DA & Netlify - GL --> CFP & Vercel & GLP + GH -- Deploy --> GHP & SH & Netlify & FELH & DA + GL -- Deploy --> CFP & Vercel & GLP CFW -- Reverse Proxy --> GHP Deno -- Reverse Proxy --> GHP Glitch -- Reverse Proxy --> GHP Other -- Reverse Proxy --> GHP CFD <--> CFW CFAI <--> CFW - GE -- Deploy --> EOP API -- API/Proxy Service <--> Users Pages -- Serviced --> Users Proxies -- Serviced --> Users From 85594ca8b1a3e9315be9a6e4529cf39cfc18475b Mon Sep 17 00:00:00 2001 From: mayx Date: Sat, 5 Apr 2025 18:56:42 +0000 Subject: [PATCH 092/244] Update 2 files - /5b60338bca964816af2f0b76965a1b84.txt - /_layouts/post.html --- 5b60338bca964816af2f0b76965a1b84.txt | 1 + _layouts/post.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 5b60338bca964816af2f0b76965a1b84.txt diff --git a/5b60338bca964816af2f0b76965a1b84.txt b/5b60338bca964816af2f0b76965a1b84.txt new file mode 100644 index 0000000..a710f75 --- /dev/null +++ b/5b60338bca964816af2f0b76965a1b84.txt @@ -0,0 +1 @@ +5b60338bca964816af2f0b76965a1b84 \ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html index a910dd9..43ecde8 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -75,7 +75,7 @@ layout: default {% include toc.html html=content sanitize=true h_max=3 %} -{% if post.layout == "encrypt" %} {{content}} {% else %}
{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %}
{% endif %} +{% if post.layout == "encrypt" %} {{content}} {% else %}
{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %}
{% endif %} {% if page.tags %} tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件 From 8c26bc57d5b9c9d5a6155eba222bc7fd47dd74f8 Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 7 Apr 2025 08:21:34 +0000 Subject: [PATCH 093/244] Update 6 files - /_layouts/post.html - /_layouts/default.html - /_posts/2024-07-03-ai-summary.md - /_posts/2022-02-14-move.md - /_posts/2022-01-04-banned.md - /proxylist.md --- _layouts/default.html | 61 +++++++++++++-------------------- _layouts/post.html | 2 +- _posts/2022-01-04-banned.md | 2 +- _posts/2022-02-14-move.md | 2 +- _posts/2024-07-03-ai-summary.md | 4 +-- proxylist.md | 2 +- 6 files changed, 29 insertions(+), 44 deletions(-) diff --git a/_layouts/default.html b/_layouts/default.html index a3c59c7..90bb0da 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -26,46 +26,31 @@ gtag('js', new Date()); gtag('config', '{{ site.google_analytics }}'); - var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}"); - var BlogAPI = "https://summary.mayx.eu.org"; - function getSearchJSON(callback) { - var searchData = JSON.parse(localStorage.getItem("blog_" + lastUpdated.valueOf())); - if (!searchData) { - for (var i = 0; i < localStorage.length; i++) { - var key = localStorage.key(i); - if (key.startsWith('blog_')) { - localStorage.removeItem(key); - } - } - $.getJSON("/search.json", function (data) { - localStorage.setItem("blog_" + lastUpdated.valueOf(), JSON.stringify(data)); - callback(data); - }); - } else { - callback(searchData); - } - } {% endif %} - @@ -145,7 +130,7 @@

- Made with ❤ by Mayx
Last updated at
总字数:{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{% if count > 10000 %}{{ count | divided_by: 10000 }} 万 {{ count | modulo: 10000 }}{% else %}{{ count }}{% endif %} - 文章数:{% for post in site.posts %}{% assign co = co | plus: 1 %}{% endfor %}{{ co }} - Atom - About
+ Made with ❤ by Mayx
Last updated at
总字数:{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{{ count }} - 文章数:{{ site.posts.size }} - Atom - About

diff --git a/_layouts/post.html b/_layouts/post.html index 43ecde8..04a2a4c 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -75,7 +75,7 @@ layout: default {% include toc.html html=content sanitize=true h_max=3 %} -{% if post.layout == "encrypt" %} {{content}} {% else %}
{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %}
{% endif %} +{% if post.layout == "encrypt" %} {{content}} {% else %}
{% include anchor_headings.html html=content beforeHeading=true anchorBody="" %}
{% endif %} {% if page.tags %} tags: {% for tag in page.tags %}{{ tag }}{% unless forloop.last %} - {% endunless %}{% endfor %} 查看原始文件 diff --git a/_posts/2022-01-04-banned.md b/_posts/2022-01-04-banned.md index 1eca6f1..2653221 100644 --- a/_posts/2022-01-04-banned.md +++ b/_posts/2022-01-04-banned.md @@ -38,7 +38,7 @@ tags: [Github, 封禁, 博客] > The repository has been deleted per your request. > Kindly note further instances that hosts a script that leverages git.io URL shortener to redirect to a malicious site may lead to further action, such as permanent suspension. - 🌿,原来是我3年前写的[让Git.io无限制](/2019/03/23/gitio.html)所提供的服务被人利用做坏事了,麻了,这Github是真的不长嘴吗?提前说一声我又不是不会删,而且我的服务被利用,上来就先干我是吧?这和某政府对付ISP有什么区别。 + 🌿,原来是我3年前写的[让Git.io无限制](/2019/03/23/gitio.html)所提供的服务被人利用做坏事了,麻了,这Github是真的不长嘴吗?提前说一声我又不是不会删,而且我的服务被利用,上来就先干我是吧?这和某政府对付ICP有什么区别。 # 造成的损失 1. 我的博客所有Star、Fork和评论全部消失 diff --git a/_posts/2022-02-14-move.md b/_posts/2022-02-14-move.md index 16b6eee..44c4fea 100644 --- a/_posts/2022-02-14-move.md +++ b/_posts/2022-02-14-move.md @@ -13,7 +13,7 @@ tags: [Mayx, Github, Gitlab, 分发] 去年我在[研究博客平台的时候](/2021/08/15/blog.html)已经调查过很多放静态站的平台了,所以这次进行分发的时候有了之前的经验,也简单了不少。 ## 源代码托管平台的选择 因为Github不可信,于是我自然想到了用Gitlab来存放博客源代码。虽然吧Gitlab曾经也发生过用户数据丢失的问题,不过反正目标也是同时放在Github和Gitlab上,总不至于两个一起炸吧。其实最开始我的计划是用Github Actions进行同步,不过在我进行调查之后我发现Gitlab功能还是挺强大的,它支持对一个Git仓库进行自动的推送和拉取,也不需要做过多的配置,就只需要配置个地址和令牌就可以,还是挺方便的。 - 在我做完Github与Gitlab双向同步之后,我发现Gitlab还挺好用的,首先,Gitlab有个很棒的地方就是没被墙,我有时候写文章的时候不挂梯子用Github真的是非常难受,目前依我所感受,防火长城会对Github先进行一下TCP RST,然后刷新一下让你连上,连上之后如果长连接断开或者大概5分钟的样子就再阻断,然后再RST一波,非常的挑战心态。有时候我写了半天然后点预览结果就阻断,等半天还是连不上,还要挂梯子,能预览的时候就得赶紧提交,万一提交的时候再阻断要是没备份就炸了。像Gitlab我就从来没遇到过类似的情况,这一点还是很不错的,大概是因为Gitlab不是社区,而且滥用的人也少,所以政府也不太关系吧。 + 在我做完Github与Gitlab双向同步之后,我发现Gitlab还挺好用的,首先,Gitlab有个很棒的地方就是没被墙,我有时候写文章的时候不挂梯子用Github真的是非常难受,目前依我所感受,防火长城会对Github先进行一下TCP RST,然后刷新一下让你连上,连上之后如果长连接断开或者大概5分钟的样子就再阻断,然后再RST一波,非常的挑战心态。有时候我写了半天然后点预览结果就阻断,等半天还是连不上,还要挂梯子,能预览的时候就得赶紧提交,万一提交的时候再阻断要是没备份就炸了。像Gitlab我就从来没遇到过类似的情况,这一点还是很不错的,大概是因为Gitlab不是社区,而且滥用的人也少,所以政府也不太关心吧。 另外就是Web IDE,相比Github的VSCode Web IDE,Gitlab的要轻量很多了,也不容易发生卡的情况,而且其实Github的VSCode Web IDE也装不了几个插件,功能上也没强到哪去。 还有就是翻译,明明用Github的中国人/华人挺多的,官方就是不出中文界面,明明文档都有中文了……Gitlab可能是因为作为一个开源产品,i18n做的很好,虽然吧英文也不影响我使用,但是毕竟作为用户体验的一项,Gitlab做的确实更好。 不过其实我觉得Gitlab也许只是表面没那么出名,毕竟不是做社区的,大多数公司都用的是自建Gitlab托管代码,而且很多时候Github其实是在抄Gitlab的(虽然最早是Gitlab抄Github),比如Actions抄CI/CD,还有最近又出的一堆什么代码扫描和检查,Gitlab出现的都更早。不过这说着也跑题了这个文章又不是为了专门夸Gitlab的😂。 diff --git a/_posts/2024-07-03-ai-summary.md b/_posts/2024-07-03-ai-summary.md index 62b85dd..a5a0d3c 100644 --- a/_posts/2024-07-03-ai-summary.md +++ b/_posts/2024-07-03-ai-summary.md @@ -235,8 +235,8 @@ export default { } ``` 另外也写了配套的前端代码(用的jQuery,其实应该用Fetch的😂): -```html {% raw %} +```html AI摘要

正在生成中……

-{% endraw %} ``` +{% endraw %} 本来文章内容应该从html里读更好一些,但是标签啥的还得用正则去掉,感觉不如Liquid方便😂。另外博客计数器不应该用MD5的,但懒得改之前的数据了,还好Cloudflare Workers为了兼容是支持MD5的,免得我还得想办法改数据库里的数据。 # 使用方法 diff --git a/proxylist.md b/proxylist.md index 2780ab9..2a1d2f8 100644 --- a/proxylist.md +++ b/proxylist.md @@ -75,7 +75,7 @@ graph LR; GF end - GH <--Sync--> GL + GH <-- Sync --> GL GH -- Sync --> GE GH -- Deploy --> GHP & SH & Netlify & FELH & DA GL -- Deploy --> CFP & Vercel & GLP From 3bfbd783857f4e79d43ee846d5ffe9422897fffa Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 7 Apr 2025 12:27:45 +0000 Subject: [PATCH 094/244] Update 3 files - /_data/links.csv - /js/rss-feed-preview.js - /links.md --- _data/links.csv | 28 +++--- js/rss-feed-preview.js | 223 +++++++++++++++++++++++++++++++++++++++++ links.md | 4 +- 3 files changed, 240 insertions(+), 15 deletions(-) create mode 100644 js/rss-feed-preview.js diff --git a/_data/links.csv b/_data/links.csv index e495e23..390f3fc 100644 --- a/_data/links.csv +++ b/_data/links.csv @@ -1,14 +1,14 @@ -title,link,description -花火学园,https://www.sayhanabi.net/,和谐融洽的ACG交流以及资源聚集地 -资源统筹局,https://gkdworld.com/,统筹保管用户分享的资源 -贫困的蚊子,https://mozz.ie/,*No description* -极客兔兔,https://geektutu.com/,致力于分享有趣的技术实践 -维基萌,https://www.wikimoe.com/,萌即是正义!一名热爱acg的前端设计师的小站! -7gugu's blog,https://www.7gugu.com/,"一个用来存放我爱好的地方,编程,摄影之类的空间" -云游君,https://www.yunyoujun.cn/,希望能成为一个有趣的人。 -Kingfish404,https://blog.kingfish404.cn/,"Stay curious,stay naive. WUT. Jin Yu's Blog" -FKUN,https://blog.fkun.tech/,*No description* -Sinofine,https://sinofine.me/,*No description* -JiaoYuan's blog,https://yuanj.top/,思绪来得快去得也快,偶尔会在这里停留 -花生莲子粥,https://blog.hslzz.cn/,与世无争,不染于泥 -南蛮子懋和,https://www.dao.js.cn/,李懋和,俗名李栋梁。书法、国画爱好者,互联网安全与前端建设者。 \ No newline at end of file +title,link,feed_url,description +花火学园,https://www.sayhanabi.net/,,和谐融洽的ACG交流以及资源聚集地 +资源统筹局,https://gkdworld.com/,,统筹保管用户分享的资源 +贫困的蚊子,https://mozz.ie/,https://mozz.ie/index.xml,*No description* +极客兔兔,https://geektutu.com/,https://geektutu.com/atom.xml,致力于分享有趣的技术实践 +维基萌,https://www.wikimoe.com/,https://www.wikimoe.com/rss,萌即是正义!一名热爱acg的前端设计师的小站! +7gugu's blog,https://www.7gugu.com/,https://7gugu.com/index.php/feed/,"一个用来存放我爱好的地方,编程,摄影之类的空间" +云游君,https://www.yunyoujun.cn/,https://www.yunyoujun.cn/atom.xml,希望能成为一个有趣的人。 +Kingfish404,https://blog.kingfish404.cn/,https://blog.kingfish404.cn/index.xml,"Stay curious,stay naive. WUT. Jin Yu's Blog" +FKUN,https://blog.fkun.tech/,https://blog.fkun.tech/feed/,*No description* +Sinofine,https://sinofine.me/,https://sinofine.me/atom.xml,*No description* +JiaoYuan's blog,https://yuanj.top/,https://yuanj.top/index.xml,思绪来得快去得也快,偶尔会在这里停留 +花生莲子粥,https://blog.hslzz.cn/,https://blog.hslzz.cn/atom.xml,与世无争,不染于泥 +南蛮子懋和,https://www.dao.js.cn/,https://www.dao.js.cn/feed.php,李懋和,俗名李栋梁。书法、国画爱好者,互联网安全与前端建设者。 \ No newline at end of file diff --git a/js/rss-feed-preview.js b/js/rss-feed-preview.js new file mode 100644 index 0000000..8d74709 --- /dev/null +++ b/js/rss-feed-preview.js @@ -0,0 +1,223 @@ +/** + * RSS/Atom Feed Preview for Links Table + */ + +(function() { + const existingPreviews = document.querySelectorAll('#rss-feed-preview'); + existingPreviews.forEach(el => el.remove()); + + const CORS_PROXY = 'https://cors-anywhere.mayx.eu.org/?'; + + const createPreviewElement = () => { + const existingPreview = document.getElementById('rss-feed-preview'); + if (existingPreview) { + return existingPreview; + } + + const previewEl = document.createElement('div'); + previewEl.id = 'rss-feed-preview'; + previewEl.style.cssText = ` + position: fixed; + display: none; + width: 300px; + max-height: 400px; + overflow-y: auto; + background-color: white; + border: 1px solid #ccc; + border-radius: 5px; + padding: 10px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + z-index: 1000; + font-size: 14px; + line-height: 1.4; + `; + document.body.appendChild(previewEl); + return previewEl; + }; + + const parseRSS = (xmlText) => { + const parser = new DOMParser(); + const xml = parser.parseFromString(xmlText, 'text/xml'); + + const rssItems = xml.querySelectorAll('item'); + if (rssItems.length > 0) { + return Array.from(rssItems).slice(0, 5).map(item => { + return { + title: item.querySelector('title')?.textContent || 'No title', + date: item.querySelector('pubDate')?.textContent || 'No date', + }; + }); + } + + const atomItems = xml.querySelectorAll('entry'); + if (atomItems.length > 0) { + return Array.from(atomItems).slice(0, 5).map(item => { + return { + title: item.querySelector('title')?.textContent || 'No title', + date: item.querySelector('updated')?.textContent || 'No date', + }; + }); + } + + return null; + }; + + const checkFeed = async (url) => { + try { + const response = await fetch(CORS_PROXY + url); + if (!response.ok) { + return null; + } + + const text = await response.text(); + return parseRSS(text); + } catch (error) { + return null; + } + }; + + const findFeedUrl = async (siteUrl, linkElement) => { + if (linkElement && linkElement.hasAttribute('data-feed')) { + const dataFeedUrl = linkElement.getAttribute('data-feed'); + if (dataFeedUrl) { + const feedItems = await checkFeed(dataFeedUrl); + if (feedItems) { + return { url: dataFeedUrl, items: feedItems }; + } + } + } + + return null; + }; + + const renderFeedItems = (previewEl, items, siteName) => { + if (!items || items.length === 0) { + previewEl.innerHTML = '

No feed items found.

'; + return; + } + + let html = `

Latest from ${siteName}

    `; + + items.forEach(item => { + html += ` +
  • +
    + ${item.title} +
    +
    + ${new Date(item.date).toLocaleDateString()} +
    +
  • + `; + }); + + html += '
'; + previewEl.innerHTML = html; + }; + + const positionPreview = (previewEl, event) => { + const viewportWidth = window.innerWidth; + const viewportHeight = window.innerHeight; + + let left = event.clientX + 20; + let top = event.clientY + 20; + + const rect = previewEl.getBoundingClientRect(); + + if (left + rect.width > viewportWidth) { + left = event.clientX - rect.width - 20; + } + + if (top + rect.height > viewportHeight) { + top = event.clientY - rect.height - 20; + } + + left = Math.max(10, left); + top = Math.max(10, top); + + previewEl.style.left = `${left}px`; + previewEl.style.top = `${top}px`; + }; + + const initFeedPreview = () => { + const previewEl = createPreviewElement(); + + const tableLinks = document.querySelectorAll('main table tbody tr td a'); + + const feedCache = {}; + + let currentLink = null; + let loadingTimeout = null; + + tableLinks.forEach(link => { + link.addEventListener('mouseenter', async (event) => { + currentLink = link; + const url = link.getAttribute('href'); + const siteName = link.textContent; + + previewEl.innerHTML = '

Checking for RSS/Atom feed...

'; + previewEl.style.display = 'block'; + positionPreview(previewEl, event); + + if (loadingTimeout) { + clearTimeout(loadingTimeout); + } + + loadingTimeout = setTimeout(async () => { + if (feedCache[url]) { + renderFeedItems(previewEl, feedCache[url].items, siteName); + positionPreview(previewEl, event); // Reposition after content is loaded + return; + } + + const feedData = await findFeedUrl(url, link); + + if (currentLink === link) { + if (feedData) { + feedCache[url] = feedData; + renderFeedItems(previewEl, feedData.items, siteName); + positionPreview(previewEl, event); // Reposition after content is loaded + } else { + previewEl.style.display = 'none'; + } + } + }, 300); + }); + + link.addEventListener('mousemove', (event) => { + if (previewEl.style.display === 'block') { + window.requestAnimationFrame(() => { + positionPreview(previewEl, event); + }); + } + }); + + link.addEventListener('mouseleave', () => { + if (loadingTimeout) { + clearTimeout(loadingTimeout); + loadingTimeout = null; + } + + currentLink = null; + previewEl.style.display = 'none'; + }); + }); + + document.addEventListener('click', (event) => { + if (!previewEl.contains(event.target)) { + previewEl.style.display = 'none'; + } + }); + }; + + if (!window.rssFeedPreviewInitialized) { + window.rssFeedPreviewInitialized = true; + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initFeedPreview); + } else { + initFeedPreview(); + } + } + })(); + \ No newline at end of file diff --git a/links.md b/links.md index b0b8e67..dbefd15 100644 --- a/links.md +++ b/links.md @@ -8,7 +8,7 @@ tags: [links] | Link | Description | | - | - | -{% for item in site.data.links %}| [{{ item.title }}]({{ item.link }}) | {{ item.description }} | +{% for item in site.data.links %}| {{ item.title }} | {{ item.description }} | {% endfor %} ## Links申请 @@ -25,3 +25,5 @@ tags: [links] 链接: 头像: Logo: + + \ No newline at end of file From d3eefbba2defb57e54502651ab9e9220e78ab36a Mon Sep 17 00:00:00 2001 From: mayx Date: Mon, 7 Apr 2025 15:52:02 +0000 Subject: [PATCH 095/244] Update 2 files - /_layouts/default.html - /links.md --- _layouts/default.html | 1 + links.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_layouts/default.html b/_layouts/default.html index 90bb0da..702e531 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -49,6 +49,7 @@ } } + diff --git a/links.md b/links.md index dbefd15..d1ef834 100644 --- a/links.md +++ b/links.md @@ -8,7 +8,7 @@ tags: [links] | Link | Description | | - | - | -{% for item in site.data.links %}| {{ item.title }} | {{ item.description }} | +{% for item in site.data.links %}| {{ item.title }} | {{ item.description }} | {% endfor %} ## Links申请 From 9170efdaa394de637bf1887f7f8c5ae4c449e512 Mon Sep 17 00:00:00 2001 From: mayx Date: Tue, 8 Apr 2025 14:12:54 +0000 Subject: [PATCH 096/244] Update 7 files - /_includes/word_count.html - /_config.yml - /_layouts/default.html - /Gemfile - /js/rss-feed-preview.js - /_posts/2025-04-08-feed.md - /links.md --- Gemfile | 1 + _config.yml | 1 + _includes/word_count.html | 1 + _layouts/default.html | 2 +- _posts/2025-04-08-feed.md | 30 ++++++++++++++++++++++++++++++ js/rss-feed-preview.js | 17 +++++++++++++++-- links.md | 3 ++- 7 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 _includes/word_count.html create mode 100644 _posts/2025-04-08-feed.md diff --git a/Gemfile b/Gemfile index a7adda3..6374f49 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ group :jekyll_plugins do gem "jekyll-assets", "~> 1.0.0" gem "jekyll-sitemap", "~> 1.4.0" gem "jekyll-feed", "~> 0.15.1" + gem "jekyll-include-cache", "~> 0.2.1" gem "jekyll-theme-minimal" gem "jekyll-paginate", "~> 1.1.0" gem "kramdown-parser-gfm", "~> 1.1.0" diff --git a/_config.yml b/_config.yml index 4f78f33..7cab47c 100644 --- a/_config.yml +++ b/_config.yml @@ -10,6 +10,7 @@ paginate: 7 plugins: - jekyll-sitemap - jekyll-feed + - jekyll-include-cache feed: path: atom.xml google_analytics: UA-137710294-1 diff --git a/_includes/word_count.html b/_includes/word_count.html new file mode 100644 index 0000000..8cc1cf1 --- /dev/null +++ b/_includes/word_count.html @@ -0,0 +1 @@ +{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{{ count }} \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html index 702e531..e2c3128 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -131,7 +131,7 @@

- Made with ❤ by Mayx
Last updated at
总字数:{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{{ count }} - 文章数:{{ site.posts.size }} - Atom - About
+ Made with ❤ by Mayx
Last updated at
总字数:{{ include_cached word_count.html }} - 文章数:{{ site.posts.size }} - Atom - About

diff --git a/_posts/2025-04-08-feed.md b/_posts/2025-04-08-feed.md new file mode 100644 index 0000000..e8a9a46 --- /dev/null +++ b/_posts/2025-04-08-feed.md @@ -0,0 +1,30 @@ +--- +layout: post +title: 如何使用JS通过订阅源查看文章? +tags: [JavaScript, RSS, Feed, AI] +--- + + 懒得写代码?那就让AI写! + +# 起因 + 前段时间,我看到有些博客给自己的友链页面做了通过订阅源查看友链最近更新文章的功能,看起来挺有意思的,有点想整一个。不过对于我的博客来说,作为静态博客想要做到这样的功能估计没那么简单吧……毕竟一般的订阅软件需要隔段时间请求一下对应博客的订阅链接,然后再把结果存到数据库才行。但是我想了想,对我来说没必要做成订阅啊,我又不需要知道对应博客是什么时候更新的,只要在有人想知道的时候去请求一下订阅链接,然后展示出来就行,感觉似乎又没有那么复杂。 + 既然不复杂,那这个功能就让AI来做吧,正好前段时间有个朋友买了一个月的Devin.ai订阅,据说是可以自己调试代码,还能操作浏览器,而且代码基本上写出来就能用。我对这个挺感兴趣的,所以这次的功能就让它来写吧! + +# 让AI编写代码 + 既然是让AI来写,至少得把我的需求说清楚,所以首先我应该告诉它: +> 创建一个JavaScript函数来实现[Links](/links.html)表格中链接的RSS/Atom源预览。 +> - 当鼠标悬停在表中的链接上时,检查该网站是否有RSS/Atom源,并将结果显示在一个浮动窗口中 +> - 在鼠标光标后的浮动窗口中显示提要中的5篇最新文章 +> - 在窗口中只包含标题和时间,不需要链接和内容 +> - 跳过所有不包含RSS/Atom源的链接,而不显示任何错误 +> - 当鼠标离开链接时,浮动预览应该消失 + + 不过在正式编写之前,我还得考虑一下可行性,毕竟是很简单的功能,我不写但我不能不知道怎么写。首先让JS解析Feed数据也就是XML数据应该是很简单的事情,JS应该有自带的函数来实现这种功能。然后是获取数据,在JS中使用fetch就可以了,但是这里有个很重要的事情,浏览器请求其他网站存在跨域的问题,还好我之前在CF Workers上用[cloudflare-cors-anywhere](https://github.com/Zibri/cloudflare-cors-anywhere)搭了个CORS代理: 。所以我应该在说明中给它说清楚: +> - 如果存在源,请使用CORS代理:https://cors-anywhere.mayx.eu.org/ 获取并解析它 + + 随后我就开始让它编写代码了。接下来就能看到AI在浏览器和编辑器中切换,不停的进行编写和调试,等了一段时间,它把第一版代码写好了。不过也许我说的不够清楚,这个CORS代理的用法和其他的CORS代理不太一样,代理链接和被代理的链接之间需要使用“?”分开,另外第一版我也没说清楚RSS/Atom源的链接在哪,所以它选择遍历常见的几种订阅源的路径,这样有点不太好,除了速度慢,对我的CORS代理消耗也比较大。所以我告诉它代理的正确用法,以及让它假设超链接中包含“data-feed”属性,其中包含订阅源的链接,并且随便挑了个网站拿给它作为示例。 + 随后就能看到它继续改改改,改了几次之后我把最后生成的JS复制到浏览器上执行了一下,效果还不错,于是就把它放到我的博客上了。 + 它的水平还是挺不错的,至少正确的实现了功能。不过我有点担心它的代码会不会不太可靠,毕竟要从其他网站上获取数据,得避免出现XSS之类的问题,于是我把代码丢给DeepSeek-R1让它检查了一下,果不其然Devin.ai写的代码似乎有XSS的隐患,如果链接列表中标题有html标签似乎就会解析(虽然我没试过),于是根据DeepSeek的提示修改了一下,增加了一个过滤特殊字符的函数,改完又放到博客上,最终的代码就是:[rss-feed-preview.js](/js/rss-feed-preview.js)。 + +# 感想 + 让AI全自动写代码感觉还挺方便,有种当产品经理的感觉了🤣,像这种AI就是Agent吧,这也算是我头一次使用Agent了,感觉用起来还挺不错的。不过从这次尝试来看确实AI也有一定的局限性,像是直接写出来的代码可能存在一些安全性问题,除非单独让AI检查,不然很有可能会写出功能正常但是存在漏洞的代码,所以还是得人看着点,AI搞出事故可是**不负责**的啊😇~ \ No newline at end of file diff --git a/js/rss-feed-preview.js b/js/rss-feed-preview.js index 8d74709..2929622 100644 --- a/js/rss-feed-preview.js +++ b/js/rss-feed-preview.js @@ -90,6 +90,17 @@ return null; }; + const escapeHTML = (str) => { + return String(str).replace(/[&<>"'/]/g, (c) => ({ + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/' + }[c])); + }; + const renderFeedItems = (previewEl, items, siteName) => { if (!items || items.length === 0) { previewEl.innerHTML = '

No feed items found.

'; @@ -99,13 +110,15 @@ let html = `

Latest from ${siteName}