普通视图

发现新文章,点击刷新页面。
昨天以前首页

是时候在我这里聊一下人工智能了

作者 石樱灯笼
2025年3月26日 02:22

是时候在我这里聊一下人工智能了

疯狂的热度也该过了吧。

也是时候冷静的看待这个问题了。

screenshot-downloaded-image

这篇文章写得特别长。懒了,没有拆成多篇文章。


目录


一、个人初接触AI技术

1. waifu2x

我第一次开始接触并使用 AI 技术,应该是 waifu2x 这个图像缩放工具。

确切的说 waifu2x 并不是人工智能技术,只是使用了和目前人工智能技术相同的 「卷积神经网络」

这东西其实不用多介绍了。

这东西实用性能满足日常需求,而且本地部署也只需要不到50MB的空间,方便又整洁。

screenshot_on_b85m_by_flameshot_at_2025-03-18_22-57-18

论清晰度其实 waifu2x 已经很不错了,尤其是平时出的原图的时候不符合各种破视频网站分辨率最低要求的时候,用 waifu2x 糊弄一个高分辨率图,然后再被这些破网站压缩成 320×180 的小图。

唯一想说的就是当时这个技术可是被小鬼滥用到极致,最火爆的期间各种互联网古董图片都被这些小鬼用waifu2x放大之后发到网上,然后大叫“我找到XXX的高清原图了!”。不明真相的人要是跟他讲这是“放大的”,他还会继续跟你解释“这是高清原图!”

你永远叫不醒一个装醒的人。

2. style2paints

接触到的第二个 AI 工具应该是 style2paints 。这是一个线稿上色工具。

最初接触这个软件的时候还是V3版本。

screenshot_EHDsLiyVAAAhjDF

网上的AI线稿上色功能基本已经烂了,但是完成度也是稀烂,可以说根本没法用。

Screenshot_2025-03-18_at_23-06-03

最早那一阵子还因为随便上色了一个线稿,画师直接就把我拉黑了。

screenshot_snap2888-starbreaker

screenshot_snap2930

style2paints 出 V4 的时候我写过这么一篇文章:https://blog.catscarlet.com/202002203604.html

202002203604_play_s2pv4/1046.png

screenshot__ERL3IRbUwAADPz-

后来 style2paints 出完 V4.5 之后,说要出 V5,而且放出了不少预览图,效果很棒,但是再也没有过下文。开发者在 GitHub 上还是活跃状态的,只不过全部都是私有提交了。

网上也再没出现过独立的开源上色工具。各个大厂虽然有各种所谓的线上AI图像处理工具,却基本上没有免费的线稿上色功能。收费的倒是一大堆,但是AI出图的效果本身就稀烂,谁知道输出一次期望中的结果之前得花多少冤枉钱。

3. rife

这算是第三个我使用的AI工具。功能是:补帧

最开始的时候这个项目还是叫做 arXiv2020-RIFE ,后来才改成 ECCV2022-RIFE 的。

但是实际上这玩意放在个人手里意义不是很大。最多就是把互联网早期的GIF表情包改得流畅一点,但是很多情况下 AI 对于补帧和人脑还是两回事。

bilibili:整了个支持Alpha图层GIF动画的放大加补帧转VP9的脚本

在有遮挡性的图像变动的时候,补帧出来的图像就会出错。4.22版本。

screenshot_00000054

(我本地是有更新的模型版本的,但是执行的时候就会出现主机断电的状况。能确定不是电源供电不足,但具体是什么愿意无从得知)

现在这个技术也被滥用了。

  • 网上有一堆原生30fps被补到60fps的动画资源,看着特别的果冻。也有电影,甚至 YouTuBe 上有 60fps 版本的 复仇者联盟1 看着就像游戏过场动画一样。
  • 很多电视台的代理(IPTV)和电视盒上游,会把 30fps 的视频补到 60fps,看着十分的诡异。
  • 最烂的当然还是显卡厂家,直接搞出 DLSS 这种帧生成的恶心玩意。

我自己看这种全局的恶意补帧视频时觉得就挺恶心的,头晕得很快。但是后来发现大多数人都是瞎子,别说补帧了,帧错误亮度错误对比度错误在他们眼珠子里都没有区别的,盯着一个坏掉的显示器看上几个小时愣没察觉到自己显示器是坏的旁边显示器是好的,瞎。

4. 其他

其他的基本上就没有接触过了。最多就是个 rembg 去背景工具,我也用不上。

再往前还有 AlphaGo,谷歌在打完围棋之后跑去打星际争霸,然后难产了好一阵子。最后不了了之,在网上搜谷歌AI打星际的视频,只能搜到一个播放列表,是 ArtosisTV 解说的 AlphaStar vs Serral,但是解说内容是基于非星际争霸玩家的,AI的每个行为以及星际争霸的每个兵种和技能都要解说一遍,中间夹杂着各种暂停和战术解释,节奏超级慢,12分钟的游戏解说了半个多小时,根本看不下去。这其间谷歌的AI就彻底凉了。

那几年 AI 爆火的时候 Python 从个只是底层干活的脚本语言一跃成为 不学 python 你就落伍了 这种骗术主流。我是懒得去学,这玩意个人学了也是屁用没有。AI 这种技术注定要被大厂捏得死死的。


二、爆火的 DeepSeek 把国际 AI 大厂的股票打废了

国产的 DeepSeek 把以 Nvidia 为首的国际AI大厂打废了,这是事实。但理由并不像国内鬣狗自媒体和阿Q人一样,因为鬣狗阿Q的思路就是成功啦崛起啦疯狂嗷嗷叫,谁叫得声音大谁有理。

Nvidia和其他大厂之所以市值蒸发,是因为他们一直声称的 需要更多硬件更多算力扯蛋

确切的说, Nvidia 摆烂也不是有 AI 才开始的。先是在挖矿潮期间摆烂,后又开搞各种与游戏算力不相关的各种糊弄人的技术。其他各厂基本上也是一样,微软在那搞的 onnx 的也是稀烂(之前我参与修复的 rembg 不能正确使用硬件加速的 bug 就是 微软 onnxruntime 和 Nvidia-CUDA 联手造成的,可见其代码是有多烂)。

而一个名不见经传的 DeepSeek 却用了很普通的过时硬件做出来一个捅了行业技术天花板的产品,这直接戳破了 英伟、微软、英特尔 这么多年来一直给市值吹肥皂的核心理念。 算力不是最重要的 不需要什么大厂技术也能做 一直吹牛逼的玩意其实屁都不是 ,这乐子直接打得 Nvidia 的50系显卡一点都不香,微软的 Win12 不知道该怎么塞烂功能,英特尔的 Ultra 系列定位完全翻车。 活该!

至于 DeepSeek 究竟怎么样?看着那个推理过程好似挺有趣的,但其实推理流程过于营销号,复杂一点的问题就开始胡说,网上难搜到的东西就开始瞎编,就和其他 AI 一样。

screenshot_on_b85m_by_flameshot_at_2025-03-19_00-42-48

screenshot_on_b85m_by_flameshot_at_2025-03-19_00-43-22

screenshot_on_b85m_by_flameshot_at_2025-03-19_00-43-43

screenshot_on_b85m_by_flameshot_at_2025-03-19_00-43-48

screenshot_on_b85m_by_flameshot_at_2025-03-19_01-06-00

screenshot_on_b85m_by_flameshot_at_2025-03-19_01-06-10

screenshot_on_b85m_by_flameshot_at_2025-03-19_01-06-17

screenshot_on_b85m_by_flameshot_at_2025-03-19_01-06-28

(部分错误引用和内容均用红框标注)

这表现实在是太像一个初中没毕业结了婚有了娃,娃娃问你一些客观存在但你完全不知道的知识时,就在那瞎引用瞎推理瞎解释,着实一个爹味浓厚的鬣狗阿Q,着实让本来就生活在这种恶劣环境的人反胃。


三、目前的 AI 到底能做些什么?

首先这个得分场景考虑,也就是,AI 这项技术在谁的手里时才有什么用。

1. 大型IT企业

首先一个前提得讲清楚:

目前的 AI 技术就是 给一个算法喂数据养模型,当相应的数据是 由人类创作的 情况下就十分有争议,说难听点就是 抄袭 。编程AI抄代码,绘图AI抄绘画,医疗AI抄病例,这也是目前相当多一部分人反AI的核心理由。

我的个人观点是:

  • 以一定的目的使用特定的数据训练AI并以此谋私利,那就是 抄袭
  • 将整个互联网数据全部用来训练AI,并公开数据模型,供所有人无偿使用,那不叫抄袭,那叫 人类的知识库

很可惜 人类的知识库 在目前的商业环境下实现不了。想使用 将整个互联网数据 的就只有大型IT企业,而目前的这些企业都是清一色的自私自利行业毒瘤,他们的存在多数都是对行业弊大于利,唯一的那点利也知识为了保住他们的自身地位罢了。(举例的话就是微软英特尔之流目前在开源界贡献的代码排在首位,但是他们贡献的全他妈的是他们自家用的驱动代码和调用代码,对整体行业有个屁用啊)

2. 中小型IT行业企业

首先中小型企业很少能有能力自己研究算法,在有限的资金和精力之下无法对行业技术作出突破性的贡献。你也不能怪罪他们,很多公司本身为了能正常运营就已经很努力了。

这才是行业真实现状。他们的产出才是老百姓真正能接触到和获益的。

目前据我能看到的,超市电子秤 可以说是一个不错的例子:传统的大型商超的果蔬摊位基本上都是要有个 负责称重的功能,有些是有专人上秤打标签,有些则是自主称重。现在很多超市都是AI电子秤,把果蔬放上去之后,能直接识别到品名(可能会识别到多种,再人工选择),这个工作量要比纯手选低多了(一个果蔬商超一般都有几十种甚至上百种标签)。当然,具体是如何实现的,我不知道,可能是电子秤公司自己训练模型,也可能傻屌公司每次都得调用一次大厂的云服务进行图像识别。

当然了!

也可能反过来,因为这些企业的领导人可能就不是IT行业出身的,很可能就是个投机人。

那么,答案只有一个了:《Employment for computer programmers in the U.S. has plummeted to its lowest level since 1980—years before the internet existed》

你甚至可以尝试阅读这篇文章的中文AI总结:《财富》:程序员就业降 – 豆包

事实上国内中小型IT行业企业的产品质量也已经进一步滑坡了,你可以看一下这个 用户端验证时间 的神奇逻辑:《海航888元的随心飞偷跑了!》,基本就是什么人要写个需要验证时间的代码结果直接丢给AI就复制粘贴了,人脑里连产品设计的逻辑基础都没有。

screenshot_on_b85m_by_flameshot_at_2025-03-19_19-59-14

3. 非 IT 行业的企业

首先摆烂的一定不会是普通老百姓。

screenshot_on_b85m_by_flameshot_at_2025-03-12_14-22

https://weibo.com/2645861077/Pi3jJBv1w

普通老百姓摆烂都抢不到热乎的。

更别说还有人人喊打的 AI 客服了。


四、目前的 AI 在个人手中到底能做些什么?

1. 作为问答式搜索引擎

因为目前的AI就是一个特速算法的搜索引擎,所以当搜索引擎用是最基本的功能。尤其是在如今搜索引擎(不论中外)的搜索结果质量都暴跌,很多人都期望能在AI上得到好一些的结果。

只不过AI也是从搜索引擎拿结果的……

screenshot_on_b85m_by_flameshot_at_2025-03-16_20-38-25

啊不是,我要是自己愿意自己逐像素框选的话那我还问你干球?

screenshot_on_b85m_by_flameshot_at_2025-03-17_21-49-05

这是怎么把一个街机游戏识别成 999 和 11eyes 的?还把俩游戏标题合并到一起了?

screenshot_on_b85m_by_flameshot_at_2025-03-21_23-29-24

Jay Smith 的 Bad Romance 与 Lady Gaga 的 Bad Romance 是什么关系?你这 DeepSeek 这是要往哪里推啊?

screenshot_on_b85m_by_flameshot_at_2025-02-25_20-44_1

我已经无语了。

不得不说很多问题有时候答案是烂得不行。

2. 写垃圾文案

简直是官僚主义形式主义的辉煌!废话文学的巅峰!狗屁不通高考满分作文上树!

screenshot_on_b85m_by_flameshot_at_2025-03-22_00-03-52

当然我也找到了点正经有点用的功能,那就是语法检测。

screenshot_on_b85m_by_flameshot_at_2025-03-22_00-20-26

这玩意对于非母语用户还行,就是也很喜欢在有得没得的地方反复胡扯。没有中文版是个遗憾。国内的产品会拿你的文档做训练,所以千万别用。

3. 编程

・项目

作为一个差不多快被社会淘汰的程序员,说实话,我到现在 IDE 还是在用 Pulsar (原 GitHub 被微软收购后被抛弃的 Atom 的社区派生版本)。什么AI插件我都没安装。

我对于 AI 编程不是很了解,我也不知道这玩意现在到底能干啥。反正大家都吹得天花乱坠的。于是找了某之名 AI 编程 IDE ,cursor,在本地试了一下。

我这手里有一些对我来说解决起来很麻烦的问题,就是不是我自己写的旧代码不兼容新环境的问题,工程量太大,业务逻辑完全不知道,我也不想去研究这些项目的具体实现。

我就想着,AI工具既然可以导入项目,那可不可以直接让AI把代码过一遍,然后针对新环境的版本把旧代码中不兼容的地方全找出来改掉。

想得美!现在的AI编程工具和搜索引擎一样,还是问答式的。

试着导入了一个项目,然后 cursor 一直不停的有得没得一直在废话一些毫不相关的东西,对于因新环境和新框架不兼容的问题一个都没发现。

screenshot_on_b85m_by_flameshot_at_2025-03-05_20-14

不得不说,很多人活得非常的 人机

・功能片段

那既然,AI编程这玩意仍然是问答式的,那就干脆继续当搜索引擎用就罢了,根本不需要什么编程插件或IDE编辑器,更不需要什么按量付费编程接口。

事实上,AI在问答式编程输出的结果还挺不错,尤其是在很多 理论上可行且应该有人实现过,但周围所有认识的人都没接触过对应技术 的场景下极为有效,而作为一个腐朽的程序员,我没事就会遇到这种 技术上应该能实现但是我不知道对应技术的入口在哪,而身边完全更是没一个比我更了解响应技术领域的人 ,这时要是在像文中 《我是救兵请来的猴子》 提到过的环境下,至少身边人都会想办法帮你找对应的资源,但是事实上现在国内大部分公司,同事人人自危根本顾不上你,甚至有人巴不得你翻车然后下次被优化的就是你,领导更是觉得「员工遇上瓶颈」乃是天大的 职场PUA 机会,绝对不会放过。

比如 《从豆包下载无水印图片》 这个用户脚本的核心理念是 跨域下载并重命名图片 。本身下载并重命名图片是 HTML5 协议中<a>的的一部分,但是掺合上跨域后就报废了。理论上这是个安全无风险的功能,但是实际上就是做不到,封死了。绕路办法,如果在网上搜,大部分资源都是告诉你使用 <canvas> 对图片进行跨域下载,但实际上却有更好更干净的办法。这个的确在AI中可以搜到,而在传统搜索引擎搜索的时候,搜索结果却会被 <canvas> 的结果淹没。

・繁琐复杂又没技术含量的代码

在编程开发这一块中,有很大一块工作内容都是 繁琐复杂又没技术含量的代码,尤其是前端开发,经常要计算渲染后图像的位置,或者单个元素的样式。这一块基本没人愿意写,但是很多时候不写不行。

这种工作交给 AI 却是非常的巴适。

screenshot_on_b85m_by_flameshot_at_2025-03-22_00-41-37

screenshot_on_b85m_by_flameshot_at_2025-03-15_20-49-15

有些时候国内AI编程的确会给出点惊艳的地方,比如需要临时文件或文件夹的时候知道 mktemp 。微软这种背靠 GitHub 的 Copilot 甚至都只会原地拉屎。

screenshot_on_b85m_by_flameshot_at_2025-03-06_14-18

但是却并不 100% 可靠。

screenshot_on_b85m_by_flameshot_at_2025-03-26_01-36-48

screenshot_on_b85m_by_flameshot_at_2025-03-26_01-38-28

・复杂逻辑的编程

上一点复杂逻辑,AI编程就很容易挖坑。

比如AI会犯最经典 初级程序员错误 ,第二次循环时忘记把标志位重置。

screenshot_on_b85m_by_flameshot_at_2025-03-06_14-23

(原链接找不到了只剩下文件了)

以及基础命令经常想当然,上下文对应不上。

screenshot_on_b85m_by_flameshot_at_2025-03-17_06-36-16

红框位置的 type -f 对应的是 文件 ,但是上下文里写得清清楚楚的是在处理 软链接,应该改使用的是 type -l 才对。

只要上一点逻辑,那出错的情况就特别多。而且由于这代码不是你亲自写的,所以你要重新读一遍所有代码才能理清其逻辑,之后才能找到 Bug 所在。

经典的 编程即是10%的时间写代码,90%的时间找bug,那 10% 才是编程的真正乐趣。而大范围引入AI进行编程后,编程是1%的时间写代码,99%的时间找bug

把编程唯一的快乐送给AI,把屎留给自己吃。

4. 绘画

这一块既是最有争议的一块,亦是我用到的最多的一块。

说来也挺可乐的,程序员在AI领域用到最多的功能不是AI编程……但话又说回来,我自己会编程我为什么还要找一个不靠谱的AI给我添麻烦?没上过班没被同事坑过还是怎么回事?

其实2022年那阵我就接触过 dalle-mini ,然而当时AI绘图基本上只能到这个程度:

screenshot_on_b85m_by_flameshot_at_2022-06-08_15-24-18

screenshot_on_b85m_by_flameshot_at_2022-06-08_14-22-06

screenshot_on_b85m_by_flameshot_at_2022-06-08_14-08-33

screenshot_on_b85m_by_flameshot_at_2022-06-08_14-04-19

怎么说呢,有些输出的确是带着灵魂的,但是整体上一塌糊涂。你可以看到每个输出中都或多或少带着核心细节。

现在AI出图已经今非昔比了。

screenshot-生成特定风格图片-2136008435344130-20250322221645

screenshot-生成特定风格图片-2134056610409986-20250322215006

・尝试本地化

首先当然是尝试在本地部署这玩意。在网上搜了下,基本都在说 comfyui 。这玩意我看了一下,支持 Docker ,那就毫不犹豫部署了。

screenshot_on_b85m_by_flameshot_at_2025-02-19_17-50-18

然而实际使用效果不太乐观。

comfyui 的默认模型出图基本是这样的:

screenshot_on_b85m_by_flameshot_at_2025-02-19_19-56-15

离实际能使用差太多了。

而目前可以在线上无限次数使用的AI生成图像工具,我找到了两个:豆包和百度,他们的出图效果是这样的。

豆包:

screenshot_on_b85m_by_flameshot_at_2025-02-19_20-07-18

百度:

screenshot_on_b85m_by_flameshot_at_2025-02-19_20-06-59

百度英文解析:

screenshot_on_b85m_by_flameshot_at_2025-02-19_20-07-33

(豆包不支持纯英文解析)

百度的出图效果要比豆包差一些,但是在关键字很少的情况下精度比豆包要高,但但是关键字超过一个限度之后百度的精度就急转直下彻底崩了。

我检查了一下,comfyui 应该是需要手动添加模型。但是我尝试了几个例子看起来很不错的模型,在执行到 VAE Decode 时,主机就会直接断电重启。

screenshot_on_b85m_by_flameshot_at_2025-03-12_01-14

我个人认为应该不是电源供电不足的问题,因为在 KSampler 阶段,显卡就已经跑满 200w 了。同样的问题也在 rife 上出现过(前文也提到了),使用 4.22 模型就正常,使用 4.25 模型就会断电重启。虽然我也怀疑是显存不够的问题,但是 comfyui 比较小的模型只有 2G 多就会导致我断电重启,而 rife 4.25 模型与 4.22 模型都只有不足 20M ,这就不太像是显存不够的情况。而且我的显卡是 GTX1080 8G 版本的,实测最多也只用掉 6G 多一点。

只能怀疑是驱动问题了,毕竟 GTX1080 这个老显卡是诞生得比挖矿潮还早。但没有办法了,我之前把系统升级后(从 Linux Mint 20.3升级到 Linux Mint 22.1,基于Ubuntu20.04到Ubuntu24.04),驱动版本还是550,CUDA也只是从12.2升级到了12.4而已,而最新版本貌似是12.8。我也不清楚到底是 GTX1080 只能装这么高,还是有什么其他限制。Nvidia 官网倒是有一个 575版本,Linux Mint官方没说正式支持,我也不想试。毕竟即使跑 comfyui 的默认模型,显卡的噪音都超大,温度直达 70 度以上(风扇57%转速,再提高那噪音就真的难以忍受了),而仍然要等很久才能出一张图。

本地化部署这事只能暂时放弃,等有新电脑新显卡再说吧。

・放大图片工具

出图只能用线上工具,那顺带看看线上工具都有哪些功能,结果发现百度放大图片的功能效果竟比我本地的 waifu2x 要好。

screenshot_on_b85m_by_flameshot_at_2025-02-22_20-26-52

(左图:百度放大。右图:本地 waifu2x 放大)

这我可接受不了。立刻把本地的图片放大工具换成 Real-ESRGAN ,测试一下。

把图片缩小,然后再用 Real-ESRGAN 放大,然后离谱的就来了。

screenshot_on_b85m_by_flameshot_at_2025-02-23_00-11-47

(左图:Real-ESRGAN animevideov3 模型。右图:原图)

animevideov3 不知道为何图片变得有点鲜艳了?

screenshot_on_b85m_by_flameshot_at_2025-02-23_00-12-01

(左图:Real-ESRGAN x4plus 模型。右图:原图)

x4plus 放大后竟然比原图还清晰!太离谱了。

这让我想起了网上传闻的「断崖上未融化的雪块被相机AI补全成坠崖的白色尸体」的乐子了。

・去背景工具

本地化了 rembg ,因为命令行真的太好用了,比起线上工具实在太方便。然而 rembg 的代码质量稀烂,依赖的环境(onnxruntime,cuda-cudnn)更是烂到彻底。为此做了不少工作。我根本就不是个写 Python 的。

反正最后调通了,而且把模型更新到了 birefnet ,效果比默认的 u2net 好非常多。

screenshot_on_b85m_by_flameshot_at_2025-02-20_15-32-10

(左图:u2net 模型。右图:birefnet 模型)

screenshot_on_b85m_by_flameshot_at_2025-02-20_15-32-20

(左图:u2net 模型。右图:birefnet 模型)

・线上出图工具

前文也讲了,我找到的可以在线上无限次数使用的AI生成图像工具有两个:豆包和百度。豆包出图效果比百度强一点。

只不过除了模型比较强大以外,豆包仍然有着所有AI图像生成工具都有的毛病:不听话

screenshot_on_b85m_by_flameshot_at_2025-03-03_11-27

screenshot_on_b85m_by_flameshot_at_2025-03-03_11-28

这完全不日系赛璐璐芳文社好吧,这都给干到韩国去了。

screenshot_on_b85m_by_flameshot_at_2025-03-10_17-12

特别喜欢给妹子穿过膝袜。裤袜搞错就已经很烦了,裤子都给你忽略了。

screenshot-生成动漫风格图片-1804857296308738-20250310150611_realesrgan2x-1

我之前想搞一个倒霉OL妹子的插画想做个有连续剧情的系列,比如妹子加班后下班下大雨,顶着雨去地铁站,结果豆包不会画折叠雨伞,我总不能让妹子淋雨吧?这个就算是情节也实在太不礼貌了,结果发现豆包也不会画「湿衣服」,可乐。

百度却非常的会画「湿衣服」,不仅如此,貌似百度画出来的衣服全都是湿的。

screenshot_on_b85m_by_flameshot_at_2025-03-10_19-00

screenshot_on_b85m_by_flameshot_at_2025-03-12_01-15

发觉百度的输出都特别的色情……

然后是如果遇到AI完全不能理解的内容,出图就特别的诡异。

screenshot_on_b85m_by_flameshot_at_2025-03-09_22-43

screenshot_on_b85m_by_flameshot_at_2025-03-09_20-50

screenshot_on_b85m_by_flameshot_at_2025-03-09_20-50_1

(开车很困难)

有时候干脆就是精神污染……

screenshot_on_b85m_by_flameshot_at_2025-03-12_23-52

不仅如此,线上工具还有敏感词屏蔽词和谐词汇,而且理由也过于欧亨利了。

screenshot_on_b85m_by_flameshot_at_2025-03-12_22-06

screenshot_on_b85m_by_flameshot_at_2025-03-23_23-29-39

这是有多怕有人用AI生成「铁链女」的照片啊?

你就只能靠中国人的聪明才智绕过屏蔽词。

screenshot_on_b85m_by_flameshot_at_2025-03-12_22-08

另一大问题就是让图像上拥有超过1个的关键性事物。

screenshot_on_b85m_by_flameshot_at_2025-03-13_01-39

screenshot_on_b85m_by_flameshot_at_2025-03-13_11-35

一个人拿着一个有特性的事物,或者两个人,就会出错。

貌似这个问题是AI的通病,AI不听话乃是日常,因为人类一句话能讲讲明白一件事情哪个关键词轻哪个关键词重是主观的,两个人能顺利交流那是电波对上了,不能顺利交流那至少一个人看另一个人是傻逼。AI 不一样,AI 没得交流,现在的 AI 只是「训练」出来的。

网上传闻 FLUX 就要靠谱很多,但是本地部署的要求则高得更加离谱。本来在研究这玩意期间发现需要研究的内容就不仅仅是 ComfyUI,还有 LoRA、ControlNet、IP-Adapter 这一堆看着就乱七八糟的玩意就烦了,我又不是专门画图的画师,专门画图的画师也不会用这种完全是另一个领域的工具坑自己。烦了烦了,不研究了。

・线上改图工具

这算是出图工具的子集。

screenshot-赛璐璐风格少女绘制-1843589592669954-20250312154607

screenshot_on_b85m_by_flameshot_at_2025-03-12_15-32

百度的出图效果就巨烂,改图效果更是差劲。事实上百度的那个AI图像编辑废柴得不行。

而豆包则超可笑的只要看到特朗普就生成失败。

最后单独生成了个图片然后用 rembg 去掉背景后再用 GIMP P上去。

screenshot-生成动漫风格图片-1845130723445762-20250312162334

screenshot_-Part-GTY-2202534763-1-1-1_realesrgan2x-1


五、目前我的态度

1. 对个人

我目前个人认为,AI 在个人手里最多只是个大玩具。

讲了这么多工具类的产品,没有多少是能在生产生活中切实获益的。或许像抠背景这种工具在艺术照或者COS照方面能有点用途,或者黑白老照片上色(但是能本地化的上色工具我又没找到)。

可能做创作时可以用 AI 做一些单页插画。但是做漫画就很困难,因为内容的连续性基本无法维持,很容易崩坏。

编程方面,虽然有牛逼吹说有人完全靠AI开发了APP,我觉得那是真吹牛逼。仅是编程环境搭建这一块在任何人面前都是令人生畏的第一座大山,大部分人根本走不到 Hello World 这一步就早早崩溃了。

剩下的就只能用来做坏事了。

2. 对各个企业

・国际

英伟达微软英特尔,仨破玩意早崩早开心。就是不清楚先被 DeepSeek 揭开丑陋真面目后又被川普背后捅刀子的股票崩溃后,到底能对这仨死玩意有多大伤害。

其实我觉得 英伟达 内心是害怕的。当年挖矿潮,捅他刀子的并不是显卡商,而是 ASIC 。我觉得再过一段时间他就得挨真刀子,所以他得把 CUDA 这一块跟 微软 绑得死死的。

screenshot_on_b85m_by_flameshot_at_2025-03-25_23-05-41

screenshot_on_b85m_by_flameshot_at_2025-03-15_20-16-44

screenshot_on_b85m_by_flameshot_at_2025-03-15_20-17-04

screenshot_on_b85m_by_flameshot_at_2025-03-15_20-18-12

(至今我们仍然不知道 ASIC 将如何跨过 AI运行环境 这个门槛)

就是不知道其他大厂到底和英伟达是不是一条心。

screenshot-生成特定风格图片-1932475492982018-20250315210448

而微软的 onnx 烂得曾让我想干脆把看到的 AI 小项目都改写成 腾讯 ncnn 的。这玩意如果要做对比的话:

  • onnxruntime 和 cuda 组合起来的运行环境一般需要 2GB 到 几十GB 的硬盘空间(不包含模型文件),启动速度超级慢,安装各种依赖包很可能搞崩溃你的系统。跨平台安装有完全不同的安装依赖。在日常主机上安装高风险高困难,只有使用 Docker 这种容器才能安全的保证主机不被污染。
  • 腾讯的 ncnn 则完全不需要用户安装任何依赖包,只要操作系统的驱动正确就可以了,整套环境是基于 Vulkan API 实现的,。整个运行环境大概在 几十MB 左右(不包含模型文件),非常的轻量。跨平台只要预编译对应的二进制文件即可。纯绿色。

然而一个巨大的门槛挡住了我,ncnn需要的编程语言基础是C系,对我来说完全是另一个领域,搞不定。

・国内

百度风投 和 DeepSeek 一栋楼。

腾讯有着最好的 ncnn 但是学习门槛略高,而且很明显国际老流氓们都提防着这个山寨王。

阿里?谁他妈的为了个问答系统还要专门安装一个浏览器,甚至产品主页都没适配PC端的桌面浏览器。烧钱疯狂投广告搞得各个平台都跟得了癣病似的。能滚多远滚多远。

screenshot_on_b85m_by_flameshot_at_2025-03-24_00-35-27

国家超算互联网中心?我跟你讲要不是因为秋风于渭水写的这一篇DeepSeek R1 可免费/白嫖网页版一览,我都不知道这玩意存在。这玩意是来搞笑的吧,自己建了一个 DeepSeek 服务但是这鸡巴什么玩意?

screenshot_on_b85m_by_flameshot_at_2025-03-24_00-56-25

screenshot_on_b85m_by_flameshot_at_2025-03-24_00-57-46

互联网的里程碑在这破玩意嘴里被贬成了 在国际上的影响力相对较小


六、结论

个人观点,仅供参考。

这篇文章写到中途的时候发觉内容太多太长。想过从中间拆开,分成多篇文章发布,但想了半天,去他妈的。

The post 是时候在我这里聊一下人工智能了 first appeared on 石樱灯笼博客.

[userscript] 从豆包下载无水印图片

作者 石樱灯笼
2025年2月24日 20:32

心血来潮,做了个 从豆包下载无水印图片 的 userscript 。

没啥技术含量。

截图

snap-1

snap2-1

 

安装及使用

具体的安装和使用方式见Greasyfork脚本安装地址或Github源码仓库。

 

脚本安装地址

Greasyfork :<https://greasyfork.org/scripts/527890>,点击页面上的  安装此脚本  即可。

 

源码

Github:<https://github.com/catscarlet/Download-Origin-Image-from-Doubao-without-Watermark>

 

废话

这个算是今年第一篇文章。

其实一直没闲着,搞了一堆屁事,或者说被一堆屁事搞。

文章又积压了,压了一堆,没精力写。

 

The post [userscript] 从豆包下载无水印图片 first appeared on 石樱灯笼博客.

大家一起黑屏

作者 xrspook
2025年2月22日 10:59

当年今日

我觉得小米Civi 1S的黑屏问题很困扰我,于是我就不断搜索到底这个是一个什么情况,希望有人跟我一样,也有类似的问题,而他们又有了现成的解决办法。

用了超过10年的小米,为什么之前就没有这种问题呢?

但我去搜索黑屏的小米手机之后,发现很多小米13Ultra出来的人有这个烦恼。当他们晚上插着充电器直到第2天,会发现黑屏开不了机,只能重启。他们这个问题的复发率非常高,很多人都遇到了,大概是在2月10日以后出现的。他们都更新到了同一个版本,HyperOS 2.0,刚好是100的那个版本。不知道那个是不是小米13Ultra从1.0升到2.0的第1个版本。看到小米13Ultra的人在小米社区哀嚎一片,却没有官方的人站出来说些什么。唯一一个帖子里面我看到了有人说把充电从智能充变成普通就没有问题了。智能跟普通有什么区别呢?我感觉是如果检测到你长期充电,智能充电充到某个程度就可能不冲了,或者使用小电流充电。但为什么这个理论上这么智能的功能反而会导致问题呢?发帖的那个人说他是把充电改成普通的方法让自己的手机不会黑屏,但是他没有说这个不会黑屏能持续多长时间,是一直都不会,还是说只是一段时间可以。可以肯定的是,小米13Ultra的人经历过黑屏,而且他们经历的黑屏感受跟我有点类似,虽然我不会把充电器插一整个晚上。有时候睡午觉可能连续插了好几个小时,但这是极少数的,通常充到100%再加个15到30分钟我就拔掉了。在我有意识的情况之下,我的充电时间不会超过一个小时,而且周一我发生黑屏的时候,前一天晚上,我没有通宵充电。我从来没有把手机放在枕头边充电的习惯。周日我从家回到单位,理论上我应该是下午充电的,这样才能保证我回单位的路上不会有电量焦虑,但万一下午我没有充电,那么有可能周日晚上睡觉之前我用18W的慢充充电了一段时间。但到底周日晚上我有没有充电呢?我已经不记得了。

小米13Ultra出来的这个问题很明确,但小米14和小米15的黑屏问题就很无厘头,他们任何时候都有可能黑屏关机,尤其是小米15。长按电源键还开不了机,你必须插上充电头或者充电宝,插上以后它又自动开机了,这个很诡异。理论如果你的机子是处于关机状态的,插上电源,屏幕点亮很正常,但屏幕点亮跟开机是两回事。小米15是非常新的机子,为什么会出现这种问题呢?小米14上线的时候,曾经出过一个更新之后屏幕会被锁定,什么都用不了,只能看到,但是却用不到的问题。为什么小米头牌的数字系列在新机推出的时候会有这种让人哭笑不得的问题呢?让我觉得很搞不懂的是,为什么小米15黑屏了以后,不插上充电头,还开不了机呢?出现这种问题以后官方好像至今都没有个说法。突然黑屏要重启,我感觉硬件软件的问题都可能有,但是新机买回来,才用了几天,电池应该不会那么快就有问题吧,如果不是电池的问题,那就有可能是CPU虚焊。这个虚焊问题,造成了一部分的机子出现同样的毛病,这个回收起来就不是一笔小数目了。一般的小米之家,一般的检测方法,怎么可能检测得到是某个元件虚焊呢?所以可能他们宁愿不承认这个问题,因为你的黑屏,没办法随时再现。

看到了那么多人跟我一起黑屏的时候,我觉得黑屏这个问题我又可以接受了,这仿佛是一个小米手机的印记,我买到的是正版。

惠普1020出状况

作者 xrspook
2025年2月20日 08:34

当年今日

不知道为什么,糟糕的事情总是接连不断。

周二的晚上跟往常一样,我要打印记账凭证,结果发现,一直用得好好的惠普LaserJet 1020 plus突然罢工,发生错误无法打印。看明细好像是因为USB无法识别。USB无法识别,下午的时候我就曾经看过弹窗,但我没理会,因为当时我正在把MP3插在电脑上充电,非常有可能突然间那个USB拓展口傻掉了,然后又不知道为什么识别不出那个MP3。反正能充电就行,能不能识别那个装置不用没关系。在电脑出现那个弹窗的时候,我就没有理会因为当时我的键盘鼠标都是正常的。MP3充电的显示也是正常的,无论如何我都不会想到,那是因为打印机。

打印机折腾的一番,没发现到底是什么问题,反正不时显示出来的状况就是某一个USB设备无法识别。折腾来折腾去都不行,我甚至换了一根USB线,也依然是那个效果,所以我把1020卸载了,然后重新安装。我是想着重新安装的,但关键是,当我插上USB线以后,还是那个问题无法识别。为什么一直非常稳定的1020突然出了这个问题呢?换了一个USB线也一样就意味着不是线材的问题,不是插口的问题,因为电脑主机的插口我已经换了好几个了。电脑已经重启过,但是打印机我没有把电关掉重启。所以那个时候我把打印机电关掉,然后重启,之后1020自动安装上去了。那个时候我也已经在惠普的官网下载了1020的全套安装包,我不知道那个全套里有什么玩意。反正在我印象之中,1020不需要安装包,win10是可以自动识别安装的。

打印机装上去了,接下来就是直接打印。我没有考虑那么多,像平常那样我就开动了,结果发现打印出来的东西不对劲,打印出来的那张纸是A4大小,但实际上我打印的那个记账凭证应该是增值税发票大小的纸,那个纸,我之前已经在系统的打印机属性设置里面设置过,为什么1020就识别不出来呢?

按照往常的方法,我又把那个自定义的纸张大小设置了一圈,结果无论如何在Excel界面看到的1020可选纸张大小依然没有。为什么居然会这样呢?之前从来没有遇到过这个问题。为什么我说从来没有遇到过,因为我也帮其他人设置过好多遍,每一次都是打印机装上去了,然后系统的那个打印设置设置好了,打印机就自动能选择系统已经设置好的自定义纸张,这一次不行。于是我又把电脑重启了,通常重启就能解决90%的问题,但这一次这个问题依然存在。为什么Epson针式打印机就能自动识别出我系统里自定义添加的两个纸张大小,但是惠普的这个1020却不行呢?在我印象之中以前是没有问题的。最终无可奈何之下,我只能在1020的打印机首选项里手动添加我自定义的纸张大小。经过一番折腾以后,我终于在我期待的纸张上打印出我想要的内容。平时这就只是一个秒杀的操作,闭眼就能完成,这一次耗费了我接近一个小时,而且遇到的事情都是很奇葩的,颠覆我之前认知的,为什么会这样呢?

唯一能解释的就是,下午我擦桌子的时候,我把打印机抱起来了。然后不知道为什么触碰到了一些东西,所以打印机就有点失常了。但是擦桌子的时候把打印机抱起来,这个操作经常发生,为什么平时就没有这个问题呢?打印机打印不了,通常我觉得是不是windows进行了某个更新,驱动不太合适的原因。经过一番USB线拔插以后,问题依旧。为什么我就没想到那个时候要重启一下打印机呢?大概因为我太信任这个1020了,可以这么说,除了不能自动双面打印以外,1020是一款非常经典非常耐用非常抗折腾的打印机,万万没想到居然会出这个乱子。

人的运气衰起来的时候,什么事情都会发生。

博客略微升级到 WordPress 5.3.18

作者 石樱灯笼
2024年12月29日 23:53

如题。

主要是因为最近想写点和代码相关的内容,但是目前在用的代码高亮插件已经嗝屁太久,而且这破插件有乱改代码的大毛病。我也是嫌弃这插件好久了。

奈何看了下目前的插件,或者是要更新到很新的版本,或者要对 <pre><code>example code</code></pre> 这种标准 HTML 写法进行大改。这互联网怎么还越发展越刁钻越发展越死板越发展越玩寡头垄断呢。

没办法检查了几个博友的实现,结果发现有些高端用法过于高端,至少我也得在本地调试一下才敢在线上部署。

但是5.2版本我拉到本地开调试模式就狂报错,的确这破版本是不支持PHP7.4的。而我目前也没精力把 WordPress 往 6 版本上升级,以及 PHP8 同理。

目前就先往上拉一个等级再说。

 

各位朋友如果发现博客有 Bug 可以直接评论。

The post 博客略微升级到 WordPress 5.3.18 first appeared on 石樱灯笼博客.

Do not play 100% Orange Juice on Linux or Steam Deck

作者 石樱灯笼
2024年12月14日 21:38

TL;DR: The Developers in charge of Steam Cloud Save File Sync for 100% Orange Juice don’t know how to handle it. They may mess up your save files, and you may be unaware of it until the loss is done.

Notice: This advice may become obsolete in the future.

Notice 2: English isn’t my native tongue.

Developers are stubborn.


I will use 100oj as 100% Orange Juice for short.

100oj is a beloved game. I declare it as the best online board game ever, with no hesitation.

The Beginning of Playing 100oj on Linux

The very original 100oj is surely made for Windows.

The earliest Steam page capture from web.archive.original

screenshot_on_b85m_by_flameshot_at_2024-12-13_17-40-21

Meanwhile, Valve is making Steam OS, and then, Steam Deck. Proton made Playing Windows Games on Linux become a real thing. (Nah, I don’t want to talk about wine. No one would really want to use those for real generic gaming).

So basically, Proton is a fork of Wine, and this software can run Windows games on Linux, and players don’t need to worry about most of the How to run Windows games on Linux things.

It is also very convenient for most game Developers. Proton just works. No need to change anything, unless you use some very unrecommended/unofficial/deprecated/obsoleted Windows API, which may happen in very old days.

100oj v3.3 on Linux Mint.

screenshot_by_flameshot_at_20210119135409

Sora on Linux Mint.

screenshot_by_flameshot_at_20210117104610

Funny thing is, the OP animation is in WMV format (Windows Media Video), which was made by Microsoft and was not kind of an open/free format. So if you play Sora on Linux with Proton, the game will crash if you stay at the start screen long enough, and try to wait for the OP animation to play.

screenshot_on_b85m_by_flameshot_at_2024-12-14_17-57-13

Funnier thing is, the OP animation WMV file is actually

  • Container: WebM
  • Video Coding: VP9
  • Audio Coding: Opus

All of them are open and royalty-free.

screenshot_on_b85m_by_flameshot_at_2024-12-13_18-24-57

Well, let’s not talk about Sora right now.


The Official announcement: Support for 100oj on Linux?

I don’t remember when it was exactly.

The wiki says it was Sep 20th, 2024, v3.23 Versioned Hotfix 1, but the official Discord announcement is Oct 6th, 2024.

screenshot_on_b85m_by_flameshot_at_2024-12-13_18-42-57

screenshot_on_b85m_by_flameshot_at_2024-12-13_18-39-08

screenshot_on_b85m_by_flameshot_at_2024-12-13_18-37-55

100oj now officially has a Linux native build.

This is where/when/how a nightmare begins.


The first time when an inexperienced programmer gives a name without knowing case-sensitive

Here it is. You can read the paragraph heading, and if you know Linux, you already know what I am talking about.

On Oct 7th, 2024, while I was checking on the Linux side, I found my save file on the Linux side is kinda outdated compared to the save on the Windows side, despite Steam already saying Cloud Status is Up to date. Also, the Free Weekly Character is different from the Windows side.

Turned out there were two directories.

screenshot_on_b85m_by_flameshot_at_2024-10-07_15-55-32

I posted this on the official Discord Support Channel.

screenshot_on_b85m_by_flameshot_at_2024-12-13_22-29-34

After that, a developer from 100oj Official replied:

screenshot_on_b85m_by_flameshot_at_2024-12-13_22-21-26

So basically, the old Steam-Play, aka the Proton one worked fine, but when the Linux native build came out, they messed up the path because of case-sensitive.

That’s kinda acceptable for a developer who doesn’t have much experience on Linux.

Well, the easiest way to fix my problem is, because I play 100oj on Windows most, I just wanted to keep the Windows savefile, so just delete both Save and save on my Linux side, and let Steam re-sync from the steam-cloud. That worked well.

I thought this case-sensitive crisis was over.


Major update 3.24

Well the most recent major update of 100oj is 3.24, released on Nov 24th, 2024.

Talking from my point of view, it was a terribly stupid idea to accomplish all these at one time.

  • Adding new play mode
  • Graphics engine changing
  • New Platform MacOS support
  • Dropping support for 32bit

I mean, what are they? Fresh inexperienced just-graduated noob programmers? What are they thinking?

100oj game crashed, a lot, after that release. The Discord support channel became a total mess.

Look at the Version 3.24 release note on orangejuice.wiki. There are one versioned hotfix and 4 unversioned hotfixes, lasting for 16 days. You should know it was a mess.


Linux Steam Overlay Issue

I mean, look at this one:

screenshot_on_b85m_by_flameshot_at_2024-12-13_22-58-08

This was reported by me, and what’s the first reply I received?

screenshot_on_b85m_by_flameshot_at_2024-12-13_23-01-01

“You are not doing that right that’s your fault lmao bronze you noob gamer trash.”

Well funny thing: the 100oj start-entry is a shell script. It looked like this:

screenshot_on_b85m_by_flameshot_at_2024-11-27_20-59-32-2

To no programmers, I will explain it: The script wants to load a file, and it should be at ‘/home/rapha/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so’. The path is formed with:

  • Prefix ‘/home/’
  • User name ‘rapha’
  • Steam installation directory ‘/.steam’
  • Steam file ‘/debian-installation/ubuntu12_64/gameoverlayrenderer.so’

There are two problems.

The first one: Who is rapha? It’s not me, obviously.

The second one: in the Steam installation directory ‘/.steam’, the file ‘ameoverlayrenderer.so’ is actually located at ‘/ubuntu12_64/gameoverlayrenderer.so’, thus there is no such a prefix ‘/debian-installation/’.

After some tests, I figured out there were some useful variables when starting something from steam client.

 

https://www.bilibili.com/video/BV1R6BRYmEoD/

Both STEAM_BASE_FOLDER and STEAM_COMPAT_CLIENT_INSTALL_PATH are reliable. I also searched on Google but didn’t find any official valve/steam document about how to locate where the steam client is installed.

I recommended “$HOME/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so” and “${STEAM_COMPAT_CLIENT_INSTALL_PATH}/ubuntu12_64/gameoverlayrenderer.so”, but got refused.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-01-24

Well of course he didn’t know what a symbolic link is.

During the discussion, a new unversioned hotfix was released:

  • Fixed Steam Overlay not working on Linux.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-04-30

Fixing by this:

screenshot_on_b85m_by_flameshot_at_2024-11-27_20-59-32-1

So they removed the ‘/home/rapha/’ part but still kept the ‘/debian-installation/’ there. I don’t know why.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-03-37

I asked. No response.

Thankfully, some Linux users are aware of that and they know how to search and read.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-04-04

Turns out there is no need to  load the steam overly library manually when start from Steam.

Well, at least I helped someone.

Note: Right now they have fixed it stealthily, with no release notes. The entry script is just like this:

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-27-59

 

Well. No credit to me.


The save path issue continues

Now they supported MacOS.

New platform, new steam cloud sync issues.

They even made a post on How to deal with save problems.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-15-16

But there isn’t any of the cross-platform savefile case-sensitivity issue information. I had to ask for adding that part.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-17-31


Mess up steam cloud sync again

I think it’s about Unversioned Hotfix 4 when they tried to fix the macOS saves sync issue.

After that update, my Linux 100oj couldn’t sync saves anymore.

screenshot_on_b85m_by_flameshot_at_2024-12-10_01-13-03

I tried the old way, removing all save files on Linux, expecting that steam client could just download the saves from steam cloud.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-29-54

Nope, that was not happening.

After a lot of trying and testing, I figured out what is happening.

screenshot_on_b85m_by_flameshot_at_2024-12-11_23-29-04

On Linux, 100oj is using both Save and save at the same time. When there are no save files:

  1. Try to convert old format saves user.dat into the new format at save/{userid}/, which the file should be very old before steam family sharing
  2. Uploading save files at Save/{userid}/
  3. If anything is missing when uploading, steam will call Unable to sync / Cloud Conflict
  4. Stuck.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-53-13

And here is the official response.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-48-47

See, that’s why I didn’t even bother explaining it.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-50-43

And you thought at least they managed to make macOS work? Too bad. Look at this screenshot of a macOS user’s Steam Cloud Storage, and see what a mess they had made.

screenshot_on_b85m_by_flameshot_at_2024-12-14_00-53-24

screenshot_1316429008703062187


Conclusion?

Well for now, they could still change anything stealthily with no release note. May become better, or become worse. I don’t know.

I even talked about this to the guy who was taking charge of 100oj Chinese localization.

screenshot_on_b85m_by_flameshot_at_2024-12-13_22-32-42

Developers are stubborn.

Well I don’t want to care about it anymore. I get no paid nor credit.

 


Update in 2024-12-23

100oj Official admitted they messed up the steam cloud setting for savefile sync.

They also said they fixed it.

 

I’m not buying it. Anyway, there is no credit to me.

The post Do not play 100% Orange Juice on Linux or Steam Deck first appeared on 石樱灯笼博客.

如何强制pnpm通过git HTTP安装npm包

作者 KotoriK
2024年12月7日 18:00

某个版本之前都是通过HTTP安装托管在git源上的npm包的,然而似乎某个版本开始就有可能采取SSH连接的方式。然而,SSH需要SSH Key才可以连接到git源(仅以Github为例),这样的策略会导致在一些CI上无法安装依赖(例如Vercel),得到这样的错误: 这个问题碰到很久了。观察发现在安装时,会随机地从HTTP或Git拉取包,所以每一次安装依赖以后,Git包的来源都可能发生变化。所以之前都是反复安装然后最终得到从加载的结果时再上传。是的,很粗暴。 今天终于想彻底地修一下这个问题。机缘巧合找到了这么一篇GIST,引用如下: 试了一下果然管用,爽到。 当然也可能是正好随机到codeload了?有待观察。 所以我之前又翻文档又翻文档试图找到一个config或者cli option来解决问题实在走错路了,

来源

我用过的路由器,给 Wrt32x 更新 Openwrt ,捣鼓 IPv6

作者 石樱灯笼
2024年12月4日 01:07

接上篇。

其实没啥能写的。倒是想写点别的话题的内容。

所以赶紧把这一篇糊弄完。


都用过啥路由器

我现在用的路由器是 2019 年买的 Linksys Wrt32x 。

自2008年在大学开始用网,就接触路由器。可以说坑一大堆,没几个能躲过的。国产路由器基本就是一个破芯片焊点零件上去就对付用了,毛病多。

先是烂大街的 TP-Link 。诚然用过一次好用的机型,结果不小心被我搞坏后再去买个同型号的,发现新版是阉割的(硬件琐碎,性能更差)。更新的型号也是阉过的,性能也不如早期型号。这玩意基本上就是 8M ADSL 下基本能用就行,网速上来了就卡到连管理页面都没响应。我后来去看了最低配 OPENWRT 的要求,硬件水平就是勉强踩线,然后软件上各种阉割罢了。好巧不巧的是我本科找工作时还给普联投过简历,人家连个笔试邀请都没给,结果毕业几年后发现有个同班女同学竟在那工作不说,工作能力基本就是个白痴,在那搞不定界面代码,因为对路由器的产品逻辑一概不知,在群里问。超搞笑的就是她把界面代码发上来了,刚好看到界面上屏蔽了某个路由器该有的功能,因为启用这个功能的话可能会消耗额外最多1M内存,当时TP-Link全产品线的硬件基本都紧巴巴的,基本上启动后剩余内存完全没有。我指导了一下之后人家立刻就消失了,我也是手贱。

再后来2013年冒出来个极路由。当时是真抢手,然而我是在一个北京科技大学的学生妹手里买的全新未开封二手极1,妹子对这玩意嫉妒嫌弃,说是参加学校比赛发的奖品,完全不想要。1代倒是好用,尤其是看上他的远程管理功能,然后过年回家给家里人装上了。极2则是扯蛋,一直没货。最后整了个极1s,然后就发现,这TM又阉割不说,还同时低价背刺极1用户。然后很快就看得出来这公司心长得歪了(貌似我还跟他们一个办公室工作过),很快一堆功能全灭。果断刷了个Openwrt,结果硬件配置太低,过于勉强,只能对付用。再后来极路由跟着其他做路由器的搞挖矿和网贷,老总蹲大牢,不过在那之前我就不关心这玩意了。

2014年还买了个小米路由器R1D,当时没觉得有啥问题,结果后来出问题了拆开发现 傻逼的小米把芯片的热量用风扇吹到硬盘上 。闹无法启动的问题,一直亮红灯,按照官方文档的解释是无法引导,我还以为是硬盘坏了,因为这破玩意跟当年COMPAQ一样把引导装在硬盘上(COMPAQ是把BIOS安装在第一块硬盘上)。硬盘抠下来换了个临时硬盘刷好系统,还是红的,他妈的只能解释为 自爆了 。不想研究,硬盘拆下来买了个硬盘盒一直用到现在。

最后2019年买的 Linksys Wrt32x 。这玩意说是当年 WRT54G 的情怀版本,专门为 OPENWRT 设计的。官方系统还有个 Killer Prioritization Engine 啥玩意说能降低延迟,在我看来可能就是个QOS啥的,还需要硬件支持才行,反正我没有。直接刷了OPENWRT。这玩意还是双固件的,即使刷崩了,连续反复开关电源就可以退到上一个固件系统中。官网上有超级详细的文档,甚至连刷崩到双固件全灭的场景下都可以自己拆机接跳线接串口的修复方案都有。


为啥要刷机

Wrt32x 买回来的时候是2019年,刷的是 19.07。后来又升级到了 22.03 。然后 22.03 对于 mv88e6176 有一个极其严重的问题:[22.03] mvebu: Turris Omnia has broken switch configuration #11077。当时我发现怪现象后到网上搜,结果就找到这个。社区的建议是能忍就先忍了,因为马上新版本就要出了,会修。因为性能或安全性问题忍不了的话,要不先退回去用旧版,要不刷个RC版本先用。然后我就把这事情给忘了。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-42-01

这现在突然有机会了,赶紧刷了。


Sysupgrade

刷 Openwrt 有两种方式,一种是 INSTALL ,一种 是 Upgrade 。我之前都是用第一种方法,刷的时候是刷到另一个固件区,省得刷崩。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-43-51

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-43-46

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-42-25

现在这个状态是,22.03这个旧版我根本不想留着。另一个固件区大概是 19.07,也可能是官方固件,留着更好。

其实就是把固件包下载下来然后在界面上点安装就完事了,啥难度都没有。Wrt32x 虽然跟 Linksys 其他的型号相比,硬件偏弱,但是 128MB+128MB 的固件存储区,512MB 内存,这配置有啥好担心的?(破TP-Link和极路由都有可能在上传固件过程中内存爆了)

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-46-03

然后就刷完了。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-47-27


装软件

我把自己都安装过啥给忘得一干二净了,只能看配置文件。

有一个最大的问题就是,我忘记自己有没有搞过存储 Overlay。这玩意当时在以前那些路由上必须得做,不然存储只是几百K,随便碰一下就爆炸。

想了想这我复制了一大堆东西进去后还有得60%剩余空间呢,不管他了。

然后发现机器屁股后面挂的USB盘没识别。折腾半天发现不论是块设备还是vfat文件系统默认都不支持。其实一直没默认支持过,只不过我当年(2019年,5年前)怎么搞的,全忘记了。这相当于全部从头学一遍。

screenshot_on_b85m_by_flameshot_at_2024-11-07_13-18-02

screenshot_on_b85m_by_flameshot_at_2024-11-07_13-21-51

screenshot_on_b85m_by_flameshot_at_2024-11-07_13-21-56

这玩意奇怪的就在于,当年我记得我装这玩意可顺利了,结果现在再用谷歌搜,啥正经玩意都搜不到了。最后还是看的 Openwrt 官网的文档 Using storage devices。官网文档也差点内容,少一个安装包,我也忘了是哪一个了,反正挺好猜的。

明显感觉到自己的能力在下降。


搞 IPv6

最初接触 IPv6 当然是大学校园网。不过大学那玩意基本就是个超导规模奇葩,跑的是个 IEEE 802.1X 协议,没参考价值。

在北京的时候北京反正是一直没开 IPv6。

后来到广州了,广东电信原生 IPv6 ,但是由于自如用的是一个定制路由器,又插了一个物联网网关在那控制电子门锁,动不得,所以我底下只是用路由器套DHCPv6把IPv6分到自己的设备上而已。

screenshot_Selection_009

screenshot_Selection_015


为啥还要搞路由器拨号

其实现在也没必要瞎折腾,照用在广州时的模式就行,光猫拨号,用无线路由把 IPv6 分下来就好。尤其是这光猫甚至都没无线功能,我啥都不用动,只要把路由器WAN改成DHCP客户端就行。

但确实有一点让我非常恼火: 这光猫的开机速度实在是太慢了! 而你知道在国内上网,重新拨号换动态IP能解决很多问题,而 这光猫却也没有手动断开重新拨号的功能


光猫改桥接,改路由器拨号

首先第一点,先验证联通上门师傅说的: 改配置后重启就会变回去

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-16-47

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-16-55

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-16-59

这玩意还挺高级,甚至连NAT全对称和锥形的设置都有。啊不是,谁会主动阉割自己用锥形啊?吸血驴?可能还真有,我有的大学同学就能干得出来这种事情。

话说为什么MTU是1480?以太网PPPoE不应该是1500-6-2=1492吗?

话说光线入户还是传统以太网技术吗?不瞒你说,我上学那阵能在书本上学到的还是那堆ATM破烂呢,新技术完全没有接触的渠道。

只改 2_INTERNET 这个,改成桥接后重启了几次,没有变回去,桥接还是桥接,且自己用主机拨号也可用。看来没问题,联通上门师傅说的改配置后重启就会变回去看来是伪命题。

然后关于 1_TR069 这个,网上都说这个是用来做远程管理的,如果把这个干掉,联通就无法远程改光猫配置了。我不打算动这个。现在家里的这个网,基本都是我自己在维护,如果出了问题,我现搞就行。我家里人是找不到第二个人搞得明白的。上次我妈手机的WiFi不知道为何连不上,硬是拖了一个多月等到我从外地回家才解决。当时插的还是联通标准光猫和标准路由,周围全年龄的活人就没有一个搞得明白怎么回事的。就这我妈还在那天天骂这些破电子设备随便在马路上拉一个浑小子就能搞定,上学有个屁用。

另外好多设置我完全不知道是干啥的。

比如啥是RMS设置?微软权限管理?为啥光猫有这个功能?连域控?连域控就说连域控就好了,整一堆专属英文缩写不说人话。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-00-05

这还有个DDNS

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-02-04

screenshot_on_b85m_by_flameshot_at_2024-12-04_00-12-49

花生壳改名叫贝锐了?这玩意怎么还敢叫洋葱头,很勇啊。怎么还有Figma?这怎么这么多撞关键词的玩意。

不关心,反正又没有公网IPv4。再说 Cloudflare 整的那个隧道协议基本上把所有内网穿透需求都覆盖了,谁还折腾这些玩意啊。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-03-30

这些都是个啥啊。

真是西格玛。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-15-32

总之是真不想折腾了。

完全不如自己年轻的时候了。


设备获取 IPv6

Openwrt 这边默认直接 WAN 拨号后直接就能获取 IPv6 。基本啥都不用动。

screenshot_on_b85m_by_flameshot_at_2024-11-07_12-28-45

底下那个 WAN6 是之前在广州时用的配置,已经完全没需要了,删了。

然后路由器下面的设备分配。我是照着晨鹤部落格《OpenWrt 开启 IPv6 公网访问全指南》 配置的。但是我只开了SLAAC并禁用了DHCPv6,底下的设备还是获取了两个地址。无所谓了,我甚至连防火墙都没开,外部甚至都不能直接用对应的IPv6地址访问我。也用不上啊,我甚至连 IPv6-DDNS 都不想配。


能用就行了

天天吼着 IPv4 枯竭,结果 IPv6 真来了却没啥实际使用场景。IPv4 也不是枯竭了,只是都卖给机房用罢了。IPv6 的情况倒更是奇葩,机房普遍没有 IPv6 服务。

我还真想不到有啥用 IPv6 的场景。

以前想点对点和别人连游戏时倒是巴不得有这玩意,但是现在,玩游戏的已经没了。

BT下载的话,UDP打洞实在太成熟,IPv6反而因为被吸血PCDN滥用变得非常有风险。再说IPv6资源站基本都是封闭的,像中国最知名的东北大学六维空间,仅能用教育网访问。我也在毕业后只在清华工作的那两个月登录过一次,而且因为是合用办公室的垃圾无线路由器,完全不能下载(带宽上来后大家一起掉线)

screenshot_snap002

只能说这资源来得不是时候。

爱咋咋地吧。

The post 我用过的路由器,给 Wrt32x 更新 Openwrt ,捣鼓 IPv6 first appeared on 石樱灯笼博客.

blog搬家

作者 xrspook
2024年11月28日 08:13

当年今日

11月末有好几件事让人焦虑。除了单位的工作以外,还有我自己的blog。因为我们合租的服务器到期了,11月28日到期。据说我们已经连续在那个服务器供应商那里好多年,我感觉有10年以上。那这一次我们觉得真的要离开了,因为那个供应商在我们提交了工单以后,半天都不回复,其次就服务器的性能来说,其实那家不算太好,虽然访问速度我个人觉得在广东电信之下还是可以的。服务器也比较稳定,试过宕机,但是几率不高。一直以来我都觉得在WordPress的后台没法用,自带的导出功理论能把全站的内容导出,我们可能是那个空间的设定的问题,每次当我下载不到2MB的时候就会停掉,结果打开那个xml文件实际上是不完整的,所以我根本没办法做全站的导出,我只能手动地分段导出文章,但那样的话,我就会丢失其它所有内容。

今年3月开始,包租公就告诉我要备份了。因为他忘记了服务器的密码。所以经典的那个WordPress搬家方式不可行,我得用其它方式把WordPress的东西全部备份出来,那个时候我觉得这根本是不可能完成的任务,但后来的确有牛逼的插件能做这个。一开始包租公告诉我,是10月到期,于是10月的时候我就找他,10月底的时候我继续找他,然后他告诉我11月到期,我不确定11月什么时候到期,有一天突然服务器宕机了,我以为是我们到期了,虽然前一天我已经做好备份,但是突然打不开,让人忐忑,结果被告知,我们还没到期,我们到期的日期是11月28日,所以11月25日的时候,我又找包租公。他居然把那个给忘记了,但是他很快就买了新的空间,然后开始往里面装东西。我们的速度很快,在11月26日我们就已经完成了搬家,虽然有一些奇怪的东西还是好像没有完全解决,但总的来说,基本上所有东西,能一次性挪走的都已经挪走了,至于哪些东西出了问题,我还没办法逐一检查出来,检查不出来的只能发现一个解决一个。其中一个比较明显的问题是有些页面有140多条评论,但实际上前台只显示了两条,当我在后台查询的时候,我的确能看到140多条,所以为什么会出现这种情况呢?其它文章评论看上去是正常的,我没有仔细的数过,但起码你能看到评论有很多,至于是不是显示多少条的那个数量,我没有仔细研究过,但为什么一些页面的评论展示数量是正常的,而另外一些却不行呢?这件事情很诡异。我记得当我用插件完成搬家的时候,除了完成按钮以外还有两个链接一个是永久链接的设置,另外一个是评论插件。在我印象之中,我没有使用任何评论插件。永久链接在那个,搬家插件之前那个版本,永久链接会神经病,得手动重选,但在这个新的插件里搬家完毕后,好像永久链接依然会以我自定义的形式显示,没有出现问题,但我还是按照以前的步骤走了一遍。

搬家的时候,我用的是IP地址,但搬家完毕以后,我把IP地址绑定到了我的域名,后来我又发现媒体文件那里当我从某个前台地址打开图片,图片显示的不是域名地址,显示的是IP地址。这算是一个很傻瓜的问题,肯定可以通过一波替换全部处理掉。域名也好,IP地址也好,实际上都能指向那个图片,万一我换了一个网址呢?那个图片就会变成失效。这种东西可以通过在后台数据库做替换简单解决,但这也是搬家过程之中经常会发生的事情。哪怕不是搬家,是从http变成https也会有这种毛病,所以为什么我就没有一种快捷的方式替换掉所有这些东西呢?

但总算搬家这个事情解决了,而且好长一段时间,我都不需要在这个问题上操心。

我在steemit平台上写文章的原因


过去几年里,我除了维护几个 WordPress 博客外,还经常在 Steemit 上写博客。我更喜欢在 Steemit 上写作,因为它有以下几个独特的优势:

区块链存储内容

在 Steemit 上,所有的帖子和评论都会被永久存储在区块链上。这意味着内容不仅持久存在,还能抵抗丢失或审查。与传统平台不同,这些平台的内容可能因人为删除或服务器故障而丢失,而区块链的去中心化特性确保了我的作品始终可以访问。

图片上传便捷

Steemit 的编辑器大大简化了图片上传的过程。我只需将图片直接粘贴到编辑器中,它就能无缝地嵌入到文章中。这种无阻碍的操作比需要手动上传或依赖外部图床的方式更加省时省力。

搜索引擎可见性更高

在 Steemit 上发布的文章通常在搜索引擎中排名更高。这可能得益于 Steemit 的域名权重和区块链存储内容的公开可见性,这让我的作品能够触及更广泛的受众,提升了内容的曝光率。

获取创作和点赞奖励

Steemit 独特的奖励机制让我通过社区点赞赚取 STEEM 代币和 STEEM Power。这些奖励为我的内容带来了实际价值,使得在 Steemit 上写博客不仅在创作上令人满足,也在经济上具有回报。这种激励机制鼓励优质内容的产生,同时也促进了志趣相投的社区之间的互动。

英文:Why I like to Blog on Steemit?

whale-300x200 我在steemit平台上写文章的原因 STEEM 区块链 SteemIt 区块链 资讯

Steem 坐火箭🚀!

本文一共 443 个汉字, 你数一下对不对.
我在steemit平台上写文章的原因. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 我在steemit平台上写文章的原因 STEEM 区块链 SteemIt 区块链 资讯
The post 我在steemit平台上写文章的原因 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. LOGO 海龟作画 系列三 递归画一个国际象棋棋盘 今天我们要来讲一讲递归. 递归就是函数自己调用自己, 我们可以定义一个过程, 然后这只海龟不停的画, 结束的时候再调用自身再继续画. 再次调用的时候参数变化了, 至到参数满足一定的条件则停止. 比如 下面定义的这个过程可以用来画一个实现的正方形. TO FK :B IF :B>15 ;...
  3. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  4. 有个兄弟姐妹是件很好的事情 越来越觉得两男孩子真心好. 好处有: 两孩子年纪相仿: 我家老大6个月的时候 媳妇一不小心意外怀孕了, 这才有了老二. 最开始两人一起带很累, 但是并快乐着, 现在两娃可以兴趣一样 可以玩到一起, 一起成长. 老大的衣服鞋子可以给老二穿哈, 不浪费. 玩具可以一起玩, 但是.....
  5. STEEMIT 简易SP代理工具 当前, 加入STEEMIT CN区低保银行的一共有40个人, 一共代理给 @justyy 银行大约 6400 SP. 好处是每天能收利息 (14.6% 年化率) 并且能获得至少一次的双倍点赞. 代理的方式是通过 steemlogin.com 但是很多人都搞错,...
  6. 《Steem 指南》之 justyy 在线工具与 API 系列 – 查看被删除的帖子或评论 前言 大家都知道, STEEM上的一言一行都是会被记录在STEEM区块链上的, 哪怕是7天内可以修改(或者删除)文章或者评论, 修改的记录也都是会被忠实的记录的. 不相信? 这个在线工具就可以做到把删除过的评论给列出来. 工具地址 中文: Steemit 查看被删除的评论 英文: Steemit Deleted-Comments Checker...
  7. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
  8. 在英国的第13个圣诞节 Merry Christmas 2017! 2017, 这是我在英国的第13年. 从2004年来, 每年圣诞节都是在英国渡过的. 最开始几年担心过节了商店没开门在家饿死所以早早屯了年货过年. 在英国感觉时间过得特别快, 也许和冬天天黑得早有关吧, 一天黑, 除了大伦敦和其它几个大城市, 其它小城镇几乎没有夜生活, 岁月静好. 这几年日子稍微好过些, 圣诞节总是要吃火鸡肉. 媳妇做了西式的晚餐, 烤箱烤熟了然后放上卤肉酱,...

134# Ledaig 1995 NSpS (推荐)

作者 sunnywolf
2024年11月13日 15:56
酒厂:Tobermory
装瓶商:Nectar Spirit Selection (NSpS)
装瓶系列:Willem de Kooning Trilogy
蒸餾年:05.09.1995
装瓶:10.01.2024
规定的年份:28 年
桶型:Bourbon Barrel
桶号:1020
瓶数:257
酒精度:46.4 % Vol.

色:金色
闻:奶油香草冰淇淋,橙皮,青苹果皮,酸芝士乳酪蛋糕
品:青苹果,草本,橙皮,微微咸感,涩感,清甜果汁
尾:中长,薄荷凉感,草本

打分:89
太好劈酒了,清新水果风味,酸芝士蛋糕,气质淡雅,像20出头亭亭玉立的古装美女。

 

尝试升级 WordPress 版本 和 PHP 版本,然后失败了

作者 石樱灯笼
2024年10月25日 23:36

尝试把 WordPress 从 5.2 版本 升级到 6.6 版本,把 PHP 从 7.4 版本升级到 8.3 版本。

任务艰巨得完成不了。

非常的崩溃。


前提

我现在的线上的博客,以及线下的开发环境,以及(如果还在不为我知的某个角落存在的话)商用用环境,都是 PHP 7.4 的。

最早些时候,应该算是2015年,正式入坑 PHP ,那时候基本是公司用啥,我用啥。PHP 5.2 5.4 5.6 都用过了,尤其是 5.2 大坑一大堆,摔过很多次。然后到 2016 年的时候终于用上了革新的版本 PHP 7.0。真爽。再后来开始自己独立开发环境,直接开了 DAMP 的坑,最初也是用的 7.0 版本,然后就很随意的升到 7.3 版本,主要是当时开发负担少。然后博客站也都升级到了 PHP 7.3。

再后来 2021 年接了一个外包项目。虽然当时 PHP 8.0 已经发布了,但是貌似周边支持都不怎么地。为了保证开发速度,直接用了 PHP 7.4 版本。当时还涉及到前端开发,Node环境也是大更新,很早之前一直用的各种热门前端库基本都死绝了。博客和本地开发环境也都升级到了 PHP 7.4,博客的 WordPress 程序倒是没变,还是 5.2 版本(这里埋了个大坑),只是偶尔会从官网下载代码包然后手动更新对应的文件,以修复些潜在的安全问题。

现在是2024年年末,就连PHP 8.0 都已经停止维护快满一年了,最新版本 PHP 8.3 也已经发布快满一年了。WordPress 都到了 6.6 版本了,一堆 WordPress 插件都已经停止 5.2 版本的支持了。

想趁着有时间有机会,把 PHP 和 WordPress 都升级了。

天真了。


第一天

首先是把线上的代码全备份一遍。这个毫无工作量,我之前写了个备份代码,直接就把自己的整站扒下来。然后把备份的站再部署到本地的开发环境上,再改几个数据库字段,就完事了。打开后台,先禁用所有插件,以便升级之需。

Apache2 和 MySQL 不用动,因为用的一直都是 Docker 的最新版本,这几年也没什么巨大的兼容性变化。

PHP 这块我不知道算不算麻烦。我把 PHP 从 7.4 到 8.3 的所有 不向后兼容变更废弃功能 全都看了一遍。没多少,就几页,几分钟就看完了。个人感觉这么多变更,只有一条能实际影响到我日常开发工作,就是自 8.0 起不再支持 带有默认值的参数后面跟着一个必要的参数

screenshot_on_b85m_by_flameshot_at_2024-10-24_22-51-45.png

其实个人工作中也很少这么用,因为易读性有点烂。论性能来讲的话这么写性能也很差,只不过以前工作过的公司里就有很多人这么写,主要是为了防止其他同事调用函数忘记传参(空参也是参)。

其余的改动基本影响不到我。我使用的基本都是 PHP 的官方建议用法,最多也就是会遇到某些外部库被遗弃然后有个平替的情况,比如数据库接口啥的,即使出错了立刻就能发现。

于是很自信的先把 PHP 环境升级到了 8.3 。因为是基于 Docker 的所以也完全不用担心环境污染的问题。

然后就崩了,WordPress 就打不开了。

这倒是意料之中,毕竟当年 WordPress 4.3 版本当年连 PHP 7.0 都不支持。我现在用的是 5.2 版本,最高能支持的 PHP 版本也才 7.3 ……

Screenshot_2024-10-24_at_23-02-46.png

什么?7.3?但我已经用 PHP 7.4 跑了 WordPress 满 3 年了啊???

什么兼容性测试……

下载了个 wordpress-6.6.2 的包,按官方文档手动安装。 崩得一塌糊涂

全部删除了重新来,这回用官方的自动升级功能,直接从 5.2 升级 6.6。真神奇,WordPress 官网被墙了这么久了竟然能秒下 WordPress 的安装包,我也不知道他是走的什么渠道。PHP 就这点恶心,前台所有操作你都看不到任何细节,就像是在用 Windows 一样。

成功安装。然后 崩得一塌糊涂 。这回不仅崩得稀烂,而且由于没手工删除后台的旧文件,新旧文件混在一起,更是手足无措。

就这么搞了超过6个小时,一直干到后半夜三点多,搞不定。

放弃,睡觉。

然后严重失眠,抽搐。

screen_IMG_2148.png


第二天 白天

首先考虑下到底是 PHP 的问题还是 WordPress 的问题。

按理来讲我已经把 PHP 的升级文档都看完了,并没有什么会天塌一般的变更,但是 WordPress 这边的确天塌了。

先在 PHP 8.3 环境下运行一下我的其他项目看看,结果我的个人主页就崩了。

screenshot_on_b85m_by_flameshot_at_2024-10-24_23-33-27.png

我用的是 2023 年 3.1.48 版本 的 Smarty,其基础版本是给 PHP 7.0 做的,可能旧了吧。

下载了最新版本的 smarty-5.4.1 ,然后

screenshot_on_b85m_by_flameshot_at_2024-10-24_15-36-49.png

什么玩意? implode is Deprecated ,我怎么不知道?

又去重新看了一遍 PHP.net 官网的 implode 文档和 PHP 升级文档。根本没有 Deprecated 。

然后在网上搜了一下,发现是 Smarty 的锅。而且 Smarty 还在 join 和 implode 之间反复横跳。更恶心的是,implode 和 join 在 PHP 7.4/8.0 中已经声明并废弃了 先数组后分隔符 的用法,但是在 Smarty 中却是强制要求 先数组后分隔符 ?甚至官方在 issue 里来来了句 Smarty is Smarty and PHP is PHP. 有病吧。而且你就算有病,你特么连个文档都没有,谁知道你有这种抽风的设计啊。

你要知道之所以我还用 Smarty 这种超级古董,就是因为这是一种 靠谱的、前后端分离、完全后端渲染、仅需要 HTTP 和 PHP 环境、不需要臃肿框架和特定语法,的网页渲染模式,是提供给搜索引擎最靠谱的传统模式。没有网页模板系统的话,想写这种纯后端渲染前端显示的页面,就只能 php 和 html 代码混写,非常的恶心。

现在 Smarty 抽风了,真就不知道以后还怎么不依赖框架写这种页面。我搜了下,Laravel 的 Blade ,和 Symfony 框架下的 Twig,貌似也可以独立使用,但是我对 Laravel 和 Symfony 基本一无所知,作为一个 PHP 开发者真是有点丢人。

话题扯远了,回到刚才。

我目前是不太想动我的个人主页的,这 WordPress 是大头,是主要内容。主页只是个入口。虽然主页改动起来并不困难,代码量少,Smarty 抽风的部分比较好找。但主页这一块我其实并不满意,主要是多语言这块用的传参而不是独立页面,很受搜索引擎嫌弃,基本上没收录,收录的也搜不到。但我的确没有精力和欲望去重做。

另一方面,WordPress这边,崩溃得最多的部分其实是插件。WordPress的代码质量本来就很堪忧了,第三方插件更是三脚猫,各种天花乱坠的不规范语法,可以说基本上都不能在 PHP 8.3 上运行。

另外我虽然看了 不向后兼容变更废弃功能 ,但是 PHP 新版新增的语法糖也有点天花乱坠。我用的是最新版的 php-cs-fixer_v3.64.0 ,没配置好的话就会把那些插件的奇葩写法转写成 8.3 的语法糖,有时结果更是瞎眼,基本没有易读性。

综上考虑,先放弃 PHP 8.3 的升级。先把能通的条通。PHP 的升级难度应该不是最高的,但是底下这些撇不掉的小垃圾目前是必须要保且支持不到 PHP 8.3,没精力做修改。

放弃 PHP 8.3 继续用 PHP 7.4 。


第二天 晚上

看兼容性列表,WordPress 6.6 也是支持 PHP 7.4 的。

但是实际上 API 改动实在太大了,而 PHP 前端应用最恶心的一点,就是 出错了,不报错

即使开启了 define('WP_DEBUG', true); define( 'WP_DEBUG_LOG', true ); define( 'SAVEQUERIES', true ); ,也经常是

  • 功能好像开了但是没开
  • 功能好像崩了但是啥日志都没有
  • 功能正常使用但是页面上打了一堆不知道哪里来的错误日志

面对如此大的一个工程而大部分代码逻辑都是不可靠的。升级到 6.6 实在是消受不起。

放弃 WordPress 6.6 ,只升级到比较近的版本。

要不然试试 5.5 吧,毕竟我在用的一款插件,作者自评最高支持到 5.5。

下了个 WordPress 5.5 的安装包,装完了。崩,但是崩得没有 6.6 多。

主题 graphene

不开插件,只看主题,首先就是文章的评论显示不出来。检查后发现是评论的API变了,而我的主题 graphene 是 1.9.4.3 版本的,不支持 5.5 。

screenshot_on_b85m_by_flameshot_at_2024-10-25_00-48-04.png

有时候看其他人的代码就是折磨,代码里写法五花八门,空格TAB混着,一会拼接字符串,一会替换字符串。单引号双引号混着用,左边括号有空格,右边括号换行了。

说实话我都不知道这算不算改好了,反正现在是能显示出来。我更担心的是其实还有哪个不知道的角落还有错,但是看不到,毕竟 PHP 前端 出错了 不报错

官方倒是有个新版的 graphene,但是我现在用的这个主题就是我大量改动过的,因为 graphene 原版的代码实在是, 太错了 。好多代码完全不符合前端的理念。然后是颜色和界面也是要一点一点从设置里调,那复杂和麻烦程度,说真的我更乐意重写 HTML 和 CSS 。

我真的想过很多次自己做一个 WordPress 主题,这个想法可是足够老了。但是当时 WordPress 3 版本的主题文档就恶心到我了,真的超级麻烦。而到如今就 WordPress 现在的代码质量,我估计开发主题会更困难更恶心。

也是怪不得其他更轻量的博客程序能后追直上。

插件 Disable WordPress Core Updates

接下来是 Disable WordPress Core Updates 这个插件。

这个插件是为了禁用 WordPress 的界面更新的。但是其实只有一行有意义的代码:

add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );

首先 create_function 这个函数在 PHP 7.2 废弃,在 8.0 中删除,所以我改写成了。

add_filter('pre_site_transient_update_core', function ($a) { return null; });

然后就见证奇迹了。能用是能用,但是 pre_site_transient_update_core 这个字段我在整个 WordPress 代码中都没找到。为什么做一个 pre_site_transient_update_core add_filter 就能抑制 WordPress 界面提示升级? 魔法啊?

然后开启这个插件的时候,更新页面是崩的。

screenshot_on_b85m_by_flameshot_at_2024-10-24_21-14-55.png

魔法。

插件 NIX Gravatar Cache

接下来是 NIX Gravatar Cache 插件。

这是个把 Gravatar 头像缓存到本地服务器的插件,只不过早就死透了。我当时随便改了点代码对付着用,大部分时间没出错也就那样了。

首先是这段代码。(红色部分是我添加的改动)

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-04-29.png

不能直接执行 wp_enqueue_scriptwp_enqueue_style ,要先执行个 add_action('wp_enqueue_scripts', 引用能调用那俩玩意的函数); 。外国人看这种超长的单词时不会眼花吗?

然后是这么一段代码。

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-00-47.png

WordPress 的 register_啥啥啥_hook(__FILE__, array($this, '函数名')); 写法全都作废了,要改成 register_啥啥啥_hook(__FILE__, array($this, '函数名'));

接下来底下那一节:

  • 假如 路径不可写 且 路径为目录,报错

否则

  • 假如 创建目录(权限777)失败 且 路径不为目录,报错

就这烂判断条件看得我脑子都快炸了也没弄明白为什么这破玩意能在我线上服务器上跑几年没报错,而我本地开发环境却根本跑不通。

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-19-42.png

而且这玩意讨厌就讨厌在于,确在我的测试环境下报错了,但是 WordPress 只是多了个 .php-error 的样式并且高出来 2em 的一节,但是一点错误日志都没有!!! 出错了 不报错

最后还是靠自己写 debug 代码定位的问题。

这 TM 都是些不该是问题的问题,竟然多得到处都是。

2天,一点有效进展都没有。唯一有效收获就是这些屎山不碰就没事,一碰能崩得全身是屎。

反而自己写的没有引用那些垃圾玩意的插件和程序,没发现啥大毛病。


第三天

2天没啥进展,给我干懵了。

俗话说没事别升级,升级必出事。

原本的想法是先试着升级,如果不能平滑升级的话,大不了全摧毁了,然后把整个博客文章用导入的方法塞回去重建。如果插件出问题了,大不了找找看是否有新的替代品。结果搜了一下,靠谱的插件基本没有,一大堆商业推广的插件,和一大堆复合性插件,而且这些插件无论对 5.x 版本 还是 6.x 版本的兼容性都乱七八糟,问题解决不了,还有可能引入更多的问题。主题这边则是更不想换,一方面本身现在用的主题就是我大量修改过的,因为网上的各种主题,仅安全性就一塌糊涂,更别说 HTML 标准了。我这主题还是专门针对 1366×768 分辨率优化过的,能在 小屏幕 150% 比例正常显示。让我再去改个新的,工作量也是太大。

现在基本上没辙了。

PHP 这边其实还行,而且版本活跃度比较稳定。

screenshot_on_b85m_by_flameshot_at_2024-10-25_22-09-00.png

https://packagist.org/php-statistics 能看出各版本使用占比都跟维护相关。但 7.4 版本 比 8.0 版本还受欢迎 属实乐了。

但是周边应用真的是质量山体滑坡。WordPress自 3.0 版本就开始崩,后面很多发展都很魔幻,就连编辑器都是靠社区兜底,到现在已经想不清楚这玩意的产品路线是啥了。

其他生态我也不清楚,毕竟作为一个 PHP 开发,我连 Laravel 和 Symfony 都没用过,商用产品都是用 ThinkPHP 应付的,当然最爽不过不依赖框架没有条条框框自己从头写。

但是像 Smarty 这种原行业标志都走奇葩路线了。可以说整个IT行业,基本上,正常的元老人物都退出舞台了,剩下的这些,刨去臭鱼烂虾,就只有偏执而扭曲了,假若走向歪路,那就没得旧,而这一点在开源社区上也极为明显(因为闭源商业的死不死没人关心),Godot 基金会开搞政治正确炮轰特朗普和动画头像用户,Linux 基金会直接开踢俄罗斯的代码贡献者。IT 行业现在就像是一个患了早期癌症的癌细胞轻微扩散病人,看似有救但却是谁都不想救。


结论

给我干哑火了,懵逼了,现在不知道咋整了。

The post 尝试升级 WordPress 版本 和 PHP 版本,然后失败了 first appeared on 石樱灯笼博客.

谷歌你是有多烂,能把别人的网站名错误的扣到我的网站上

作者 石樱灯笼
2024年10月23日 23:08

现在的谷歌Google真是操蛋。

语言无法形容我有多讨厌印度人。


把别人网站的标题扣我网站上

中午的时候网站崩了,检查一下发现是供应商机房的电源爆了,折腾了2小时才恢复。无聊期间用谷歌搜了下自己的网站,想检查下之前那个镜像我网站的结果滚蛋没有。

然后TMD神奇的结果就出现了。

screenshot_on_b85m_by_flameshot_at_2024-10-23_19-14-41

screenshot_on_b85m_by_flameshot_at_2024-10-23_19-27-40

谷歌怎么把 【秋风于渭水 https://www.tjsky.net/】 的网站名扣到我的网站上了?


也不是最近才开始讨厌谷歌的

上学那会可是把谷歌当宝贝了,那时候中文搜索引擎,靠谱的就他一个。后来参加工作后,由于工作需要,要大量搜索英文资料,所以谷歌更是必不可少。

谷歌发臭大概就是2016年后,也就是谷歌搞完 AlphaGo 之后,声称其会把其人工智能算法要应用到多个领域,其中一个就是谷歌翻译。那几天谷歌翻译的准确率的确上升了一点点……然后就像腹泻患者蹲上茅坑,把粪涂得满墙一般,翻译质量直接就崩了。同一时间段,YouTuBe也更新了其推送算法,出现了很严重的重复推送用户已观看视频的问题,推送质量跟美国飓风摧毁过一样,一片狼藉。

仔细想想,2016年也刚好是谷歌更换CEO后,对自己公司捅刀子该捅出效果的时候了。

印度人


奇葩的印度人

去年的时候 【挨踢路 – 老狼个人博客】 就遇到过一次谷歌抽风,搜索结果带奇怪后缀的问题。在那之前其实我就遇到过很多次谷歌干出来的奇葩设定,比如

  • 谷歌搜索结果出来的不是你的网页标题,而是谷歌自己猜想出来的玩意
  • site: 或 URL 搜出来的结果完全不能表示最终搜索结果
  • 用不同关键字搜出来的相同内容,标题是不同的

这些应该都在谷歌的 Google Search Central Community 有记录过。所有人都在骂,但是印度人的脑逻辑是很神奇的。

现在倒好,我也中招了,而且更奇葩。

screenshot_on_b85m_by_flameshot_at_2024-10-23_20-57-57

10年啊,10年的老站,谷歌你他妈的连个网站标题都搞不明白。

这是搞得有多砸才能完成的壮举啊?谷歌?


互联网正在死去

以前总有人说,中文已死,中文正在死去。

全球都没好到哪里去嘛。

 

摆烂吧。

人类亡了。

The post 谷歌你是有多烂,能把别人的网站名错误的扣到我的网站上 first appeared on 石樱灯笼博客.

[Frightening Dream] 梦见求职怀旧「003」

作者 石樱灯笼
2024年10月21日 22:23

「部分噩梦是因为本人在现实中遭受精神上的打击,使得心情低落,导致创伤后心理压力紧张综合征后,会在梦中体现。这种噩梦可能会引发一些疾病。」

——摘自维基百科「恶梦」词条。

声明:「本故事是做梦梦到的,如有雷同那你精神有问题」


章节一

找工作,出门去面试。

大下午,刚下完大暴雨,北京天黑得跟深夜一样。积水没过鞋。

面试地点在一个小区的四层小楼里。

天黑,小区里一个路人也没有。

到了楼下,从一个入口找到了一个特巨大的电梯,看着像货运电梯,但是保养得特干净,应该是被载人载货混用了。

电梯外边墙上一个大彩色海报,上面写着各楼层的用途:

  • 1楼,美食城(请从正门进入)
  • 2楼,酒吧(此电梯不到2楼)
  • 3楼,用棕色的胶带贴住了
  • 4楼,XXX幼儿园

我要去的是4楼,应该是个IT行业的公司,怎么是幼儿园?

我看看手机,离约定的面试时间还有一个多小时。不如直接上去看看是不是走错地方了。

坐电梯上到4楼,出电梯一看,楼层空无一人,有几个房间亮着灯,往里面看,装修的确像是个幼儿园,只不过里面都是空的。地上有些幼儿园家具和玩具,看起来以前是个幼儿园,只不过没在运营。

我继续往里走,看看能不能遇到个人,问问是什么情况,这是我等会要面试的地点吗?


章节二

突然从走廊对面呼啦啦上来好多人,挨个进房间开灯,好像在规划什么似的。我走进一看,领头的那个不是我以前的前同事W(代名)嘛!W也看到我了,赶紧互相打招呼。

W后面跟过来的人,我一看,这不都是以前我在公司时比我先离职的老前同事嘛!

我问他们这是在干啥,W说,老公司打算用个新名字开个子公司,把这里三楼四楼都租下来当公司了,人都是以前的老人,直接在这简单收拾一下就要开干了,今天就是过来看看四楼怎么分配工位比较合适,大家都过来看看,看完了之后在这团建,玩一下午,然后楼下应该是个美食城,还有酒吧,晚饭也直接在这解决,反正公司报销。

W问我:咋这么巧你咋上这来了?

我:我是来面试的,说是在这四楼。

W:那要是知道是你那还面个啥啊,直接来就行了。等会别走啊团建玩游戏直接带你一个。

随便看了一下,都是以前的老同事,互相寒暄一下,发觉之前出国的几个前同事都没来,还是满遗憾的。


章节三

不大一会,前同事们把最大的那个房间收拾出来了。原本应该是幼儿园的给小孩玩耍的活动教室,现在一堆大人在地上坐了一圈有说有笑。

我进屋,有的前同事看到我,一愣,「哎呦,老猫(代名)咋也来了」,我说我本来是来面试的,「那还面试啥啊你想要啥岗位等完事了直接跟我们说就行了。等会做游戏你可得在我们这一组啊。」

W:「那可不行,我先遇上的老猫,他就得跟我们一组了」

另一个前同事:「唉W你不能这样,你看我们组人少,你得给我们匀几个」

W:「那我把最后进屋那几个人匀给你!」

得,我还是个抢手货。

前同事M(代名。M以前是W的项目组组长)进屋,看到我,「呦,老猫来啦,你分哪个组了?」

W:「分咱们组了。」

M:「你给他手环了吗?」

W:「还没有呢。」

说罢,W拿出来个浅绿色的手环,直接套我手腕上了。「这是咱们公司的手环,也是门禁卡,你进门的时候刷这个手环,门就开了。另外今天做游戏咱们一个组的,手环颜色是一样的,都是浅绿色的。」

我看了一下周围,所有人手上都带着个手环,颜色一共四种,看来今天做游戏是分四组。


章节四

开始团建,做游戏。

第一个游戏,一个前同事竟然捧出来一摞 3DS 出来,第一个游戏竟然是要在 3DS 的一个排队游戏里比赛的。

然后果然我们组首推我第一个参赛……果不其然就拿了第一。怪不得每个组都想争取我当组员。

自己玩了第一个游戏,然后又看着老同事们继续玩。

我突然一愣,想起以前大家还在老公司的时候,开会啊,团建做游戏啊,都是有零食有饮料的,怎么现在没有了?

W:「这附近貌似还真没看到有超市,没买着。」

我:「我下楼去一楼那个美食城看看有没有吧。」

W:「你手环拿着呢吗?等会从3楼进来直接刷手环就能开门。」


章节五

我从货运电梯下楼,直接到了楼外,绕着整栋楼走了半圈,才看到整栋楼的正门。

天仍旧很黑,像深夜一般。

从正门进入,映入眼帘的,是一排排餐饮用的桌子,而大部分椅子则倒扣在桌子上,看起来像是很久没有用过一样。

继续往里走,看到有亮灯的柜台,有个人弯着摇拿着拖把在柜台后面拖地,也不像是在营业的样子。听到我的脚步后也没有站起来看我一眼的意思,弯着腰就回应了一句「还没到营业时间呢」,说罢就进里面的屋子了。

我四处看了一下。基本所有柜台都没有亮灯或者营业,都没有人在。

有个通向二楼的楼梯,但是整个楼梯都被椅子堆死了,根本不可能从那里上到二楼。

最里面有个柜台则是有个人坐在那玩手机,不过那个柜台连牌子也没有,看起来更像是值班的保安。

我过去问保安哪里能买东西,保安:「不营业。」

我又问从哪里能上楼,保安:「都说了不营业。」

我示意我其实是要去3楼4楼,保安竟然用嫌弃的眼光瞟了我一眼:「3楼4楼早就黄了好久了根本没东西,你上去干啥!」


章节六

没办法只能出大楼,然后走到大楼后门坐电梯再上去。

到了4楼,电梯打开,却发现整个楼层一丝光亮都没有。没有房间开灯,也没有人。我往里面走了一点,整个楼层除了我脚步声的回音之外,什么都没有。没开灯,房间里有什么也看不到。

很伤心的从电梯下楼,到楼下,外边又下起来大暴雨了。

门前积水很快就涨了上来,水深得能划船。


章节 Nostalgic PTSD

想拿手机看看几点了,却发现自己手腕上还套着手环,只不过在这乌七八黑的大黑天里,手环不是浅绿色的,是橙棕色的。

醒了。

The post [Frightening Dream] 梦见求职怀旧「003」 first appeared on 石樱灯笼博客.

网站镜像攻击2024第一版

作者 石樱灯笼
2024年10月10日 22:14

又是网络攻击的一年,又是新花样掺老花样,无聊得想拉屎。

我发现每次我遇到无聊得想拉屎的事情的时候,股票啊基金啊虚拟货币啥的都暴跌。


又是网站镜像攻击

我大概2007年开始写博客,2010年正式建立这个网站。

那几年里,垃圾站、抄袭站、镜像站 堪称行业定义。你去买个域名买个空间,如果卖家发现你不是做这些粪坑玩意的,都会鄙视你。

以至于我到现在,电脑里还保留着某个流氓软件……的快捷方式。

b85m-win540-snap

清晰记得那时候校学生会和院学生会都偷偷在学校官网里塞私链给自己的垃圾站引流,然后颐指气使地对我这种无官无位的普通学生鄙夷不屑。

然后突然有一天谷歌更新了收录算法,一下子就把所有垃圾站砍光了。百度倒是一直那个德行,除了垃圾其他什么都不搜,不过就算收录了也没啥用,你在上面也搜不到你想要的内容。


国内博客网站被大批镜像

这最近一个月,突然好多博客在写如何避免自己网站被镜像。招数还是10多年前时候的那些招数,只不过 javascript 的语法比以前干净了,

就有点奇怪了,这十多年从来没人担心过这种问题,怎么突然全在提这个问题。

然后随手搜了一下,果不其然本站也被镜像了。

screenshot_on_b85m_by_flameshot_at_2024-10-09_19-27-47

screenshot_on_b85m_by_flameshot_at_2024-10-09_17-57-07

镜像就镜像呗,反正谷歌收录又不是识别不出来。

screenshot_on_b85m_by_flameshot_at_2024-10-09_19-46-03

b85m-win541-snap

唉草,谷歌现在这么垃圾了吗?原创不收录,反而优先收录镜像站。

我这十多年老域名的含金量还不如一个一年的镜像站了?


分析

随便看了一眼 access.log

screenshot_on_b85m_by_flameshot_at_2024-10-10_19-48-31

screenshot_on_b85m_by_flameshot_at_2024-10-10_19-47-47

IP 是 103.233.9.190 ,一个香港的主机。

原本会以为会是什么云服务商的 Worker 啥的,结果就是个普通的主机。顿时觉得没意思了。

之前这货用的IP是 154.39.149.128 。上个季度我网站流量排第二的就是这个IP。

前端是套的 cloudflare 。但是后面这个 103.233.9.190 基本没藏,所有有趣的设置都在 103.233.9.190 上而不在 cloudflare 上。我估计是工作量太大了根本设置不过来。

直接访问会报 404 错误。

screenshot_on_b85m_by_flameshot_at_2024-10-10_19-58-15

必须用美国(此处存疑)的IP访问才能正常访问,如果用欧洲或者其他国家的IP还是404,感觉就是为了搞谷歌收录。

screenshot_on_b85m_by_flameshot_at_2024-10-10_19-57-51

刚才也说了,后面的真是主机基本没藏。

直接用静态解析就能访问到。

screenshot_on_b85m_by_flameshot_at_2024-10-10_20-04-20

screenshot_on_b85m_by_flameshot_at_2024-10-10_20-05-48

没啥意思。

用 Internet Archive 搜了下,这个域名去年也是在做某些网站的镜像。看来是老杂种了。

PS:写文的时候 Internet Archive 挂了,疑似是被攻击,还被拖库,这是有够惨。反正网站是打不开了,没得截图。


共情

随便在网上搜了下这两个IP,看来受害者还挺多。

Cloudflare 和 Google 的 DCMA 投诉啥的虽然略有效果,但是收效甚微,最多就是恢复下当前的收录。

很明显这坏人不像是处于经济动机做这些恶心事。而且国庆假期期间还搞事也说明了就是个社会闲散人员。

除了几个提供警示和反制手段的博客之外,也有不少精神胜利法的。上来先猜一波方法是什么动机是什么目的是什么,最后猜了一圈就给出个大结论,连access.log都不会看;然后在搞什么收录搞什么投诉再搞什么举报,最后就精神大胜利了,非常阿Q。


处理

随便写了 rewrite 策略糊弄了事。

是的这一块我不太关心。这玩意就是猫捉老鼠,跟实际上看猫和老鼠完全不一样,很无聊。

想一下如果我是坏人,那我有什么办法?我办法多了去了,网上多数人的防御和反制手段基本都拦不住我。问题是缺德的事情我不做,更别说这事情本身就没有经济价值。


结论

写完这篇文章后搞不好又得遭一波 DDOS CC 攻击。

参考资料和引用资料我就不放了,别再被爬去被用作攻击列表。毕竟有些博主的反制能力不是很强。

请不要尝试去访问攻击者的镜像。

The post 网站镜像攻击2024第一版 first appeared on 石樱灯笼博客.

用WinMerge进行文件夹比较时忽略git目录的方法

作者 大致
2024年9月30日 16:35

在选择比较目录目录的对话框上,点击左下方【Folder:filter/文件夹:过滤器】处的【Select…/选择】按钮,然后在【File Filters/文件过滤器】选项卡中选中【Ignore git】,确定,即可。
进入比较后,这一项也有办法解决。点击菜单【Tools/工具】->【Filters/过滤器】后,同样在【File Filters/文件过滤器】选项卡中选中【Ignore git】,确定,然后刷新重新比较,亦可。


  • (1):陆行鸟迷宫系列版权和开发都是史克威尔,但系列的前两作是CHUNSOFT的社长中村作监督,所以有时也被归类进不可思议迷宫系列中
  • (2):其实两周后的决赛李明又喂了一次屎,不过那场比赛不如这场有戏剧性。
  • (3):进第二个球的那个赖特后来在假A沈阳队踢过。
  • (4):饭店里并没有天津本地品牌“五星”
  • (5):章鱼
  • (6):海胆
  • (7):不像《侍魂》和《天外魔境》那样还需要把武器拾回来,而是每个人的武器都能飞去来。

使用ffmpeg处理YCbCr422(YUV422-10bit)格式的视频信号

作者 大致
2024年8月4日 15:57

最近搞的项目跟视频采集卡有关。客户的要求是采集的时候视频卡信号要设成YCbCr42210bit格式,从板卡上采集到的图像要将这个原始格式不压缩直接保存成mov文件。另外要能读取自己保存的mov文件,在板卡上播放。
然后我的猪队友同事们给我甩来两个课题:
一是没用明白windows的SinkWriter,非说人家巨硬不支持这种yuv42210bit的保存。
二是视频的连续播放,只能把mov文件拆成一帧一帧,把原始数据喂给板卡。但是之前抄的例子是8bityuv,10bit的不会弄,而先转成bmp再转yuv422的话误差太大。

这一看就不是我能手搓出来的事儿,跟客户申请之后,客户表示可以用ffmpeg的命令行(因为GPL,不能用库的方式使用)。
于是我要处理的两个问题如下:
(一)将YUV422-10bit的原始数据(raw)保存成mov
(二)从自己保存的mov中抽取每一帧的原始数据。

一番搜索之下终于给对付上了。这个格式就挺恶心,ffmpeg的官网更恶心。官网上洋洋洒洒50章,每个参数都说到了,例子却寥寥无几,专有名词一大堆,给人一种生人勿进的的错觉。

将yuv422-10bit的原始数据转成非压缩mov

  • 命令行:
  • ffmpeg -f image2pipe \
           -frame_size 5529600 \
           -vcodec v210 \
           -pix_fmt yuv422p10le \
           -s 1920x1080 \
           -r 60000/1001 \
           -i fromcard.raw \
           -c:v v210 \
           -an -sn \
           result.mov
    

    逐个解释一下各参数的设置

  • -f image2pipe
  • 输入文件的format。这里的format是ffmpeg的demuxer的格式,可以通过ffmpeg -demuxers进行查看。输入原始数据的时候本来应该用rawvideo。但是ffmpeg在处理yuv42210p的原始数据的时候有一个非常奇怪的bug:在计算每一帧数据空间的时候,ffmpeg认为一帧数据的大小是宽*高*4。但是yuv42210p系列的格式,每16个byte里包括6个像素点的信息而不是4个,这就造成了用rawvideo生成的图像会丢失1/4的帧的奇怪现象。ffmpge的官网上曾经记录过这个issue,貌似他们没改好啊。我的这个解决办法实际是在issue的回复里找到的。image2pipe是一种通用的流格式,这里利用了它必须指定帧宽的特性。

  • -frame_size 5529600
  • 与image2pipe配合使用,指定每一帧的大小。5529600=1920x1080x16/6,其余分辨率自己算。注意如果raw不能被这个size整除,会报成信道不足的奇怪错误。

  • -vcodec v210
  • 输入使用的解码器。可以大致理解为YCbCr42210bit≈yuv422p10≈v210。v210就是这种格式的FCC码。

  • -pix_fmt yuv422p10le
  • 输入文件的图形格式,yuv422p10le使用16个字节(128bit)描述相邻的6个像素点,并且每32bit按照小字节序反转。反正就是搞清板卡设置的格式,按是否是小端字节序来觉得是否加最后面的“le”

  • -s 1920×1080
  • 输入图像的分辨率

  • -r 60000/1001
  • 相当于帧率(fps)。如果生成的帧率是整数,可以直接写。但如果帧率是小数,比如59.94,就要写成timescale/duration的形式。

  • -i fromcard.raw
  • 输入文件。我这里是把所有的帧存到了一起,放在同一文件里。

  • -c:v v210
  • 输出文件的视频编码器。因为这个参是要设输出文件,所以一定要放在-i的后面。

  • -an
  • 无音频流。

  • -sn
  • 无字幕流。

  • result.mov
  • 输出文件。

    如果需要存成隔行信号的文件,要在-i后面加一组参

    -vf tinterlace=interleave_top,fieldorder=tff
    

    顶场底场/奇数先偶数先其实有4种排列组合。但是自己编自己解,FFMPEG都能搞定,就不具体说明区别了。

    从mov中抽取每一帧的原始数据

  • 命令行:
  • ffmpeg -i input.mov -c:v v210 frame_%04d.raw
    

    同样逐个参数解释:

  • -i input.mov
  • 输入的mov文件。

  • -c:v v210
  • 输出文件的图像编码格式。与之前相同。其实这个参数是无视输入格式本身的。如果是本篇中的例子,输入与输出的图像相同,那就没有产生转换;如果不同,则ffmpeg会自动将原始格式转为这个参指定的图像编码格式,非常智能。

  • frame_%04d.raw
  • 输出文件。ffmpeg是根据输出文件的扩展名来自动识别输出格式的。想要原始数据,就必须指定成.raw为扩展名。如果不加%d,ffmpeg就会把所有帧存成一大坨文件保存;加了%d,就是逐帧分开保存。

    如果上面生成了隔行文件,那么这里也要增加一组参数

    -filter:v yadif=1

    否则解出来的帧数就会少一半。

    搞定!


    • (1):不像《侍魂》和《天外魔境》那样还需要把武器拾回来,而是每个人的武器都能飞去来。

    Git 纪元

    作者 hutusi
    2024年2月25日 23:10
    19世纪末,弗雷德里克·泰勒在美国一些工厂推广他的科学管理方法,这包括用科学的方法来代替人工经验判断、对工人进行专业训练以及按专业分工。亨利·福特在他的汽车工厂里也开始应用泰勒科学管理,并且在汽车生产上创新性的采用了流水线作业。1908年,第一辆福特T型车从流水线上面世,而经过优化的流水线在几年后甚至可以达到93分钟内生产一部汽车,强大的生产效率让福特超过了其他所有汽车厂商生产能力的总和。福特的流水线生产很快被其他厂商所借鉴,也迅速普及到了其他工业领域。可以说,福特T型车流水线作业的发明开启了大规模工业生产的时代,人类的生产力得到了巨大的提升。从英国移居到美国的阿道司·赫胥黎对此深受启发,在他的带有科幻色彩的反乌托邦小说《美丽新世界》中,描写未来的人类“文明社会”,人们不再用公元纪年,也不信仰上帝,改尊亨利·福特为唯一的神,以福特为纪元,并以第一辆福特T型车流水线生产的1908年为福特元年。
    ❌
    ❌