分类 趣分享 下的文章

当初在西安的时候办的卡,速度和延迟都非常给力,回郑州之后测速上行16Mbps,下行更是逆天直接掉到1Mbps,同设备的移动卡则是直接啦满。
看了一下通信人家园的帖子和网友们的各种尝试,有改APN伪装成5G CBTC(基于通信的列车自动控制系统)的但是貌似早就修复了这个BUG。
最终尝试通过*#*#4636#*#* 进入调试界面更改首选网络为4G后网络速度基本恢复正常,但是又限于LTE的100Mbps,实际峰值只能跑到8.2MB/s,但是就算这样也比5G状态下的1Mbps舒服多了,这种情况据说是广电某地区没给移动交够租用资金就会遭到限速。
但是具体怎么回事还不是很清楚,只能说广电一手好牌打得稀烂,就像它过去那样。

但是这个方案没有解决LTE相对5G NR延迟的增加,拿来打游戏就不那么令人愉快了。

2025/11/7更新

在昨天夜里用流量下载了30G游戏更新后白天上班遇到了奇怪的情况:勾选LTE only会出现LTE无信号的情况,但是勾选包含5G NR的选项则能正常链接5G。总之,今晚的测试发现网速从1mbps的严苛限速恢复到了峰值19.4mbps,上行则为50mbps
结果历史记录,限速仍然存在但是有所好转,希望未来至少恢复到100mbps。

报错如下:

root@racknerd-14a7c8:~# podman stop pmail
2025-10-19T09:53:14.285697Z: send signal to pidfd: Permission denied
Error: timed out waiting for file /run/libpod/exits/b0fc27c2e04e4655bc2a810ce522b37952f27b4706727bbca2f9faa59de150b3: internal libpod error

并且使用podman-compose down也会有相同报错,并且重启容器时会遇到残留进程占用25端口的问题。
在经过一系列尝试后DeepSeek已经开始不断推荐我直接使用Docker,但是我不想用。所以尝试使用runc作为最后一搏,还不行我就真的换Docker了,毕竟好用的工具才是好工具。

什么是RunC?

RunC是Docker捐赠给OCI作为OCI容器运行时标准的参考实现,因此我猜想使用runc比podman的默认运行方式更符合OCI标准,因而能更大程度兼容Docker镜像。
安装 runc sudo apt install runc -y

配置 Podman 使用 runc 作为默认运行时

sudo nano /etc/containers/containers.conf
在 containers.conf 中添加:

[engine]
runtime = "runc"

为了确保podman-compose一定使用了runc,可以添加runtime: runc

version: '3'
services:
  pmail:
    image: ghcr.io/jinnrry/pmail:latest
    container_name: pmail
    restart: always
    #privileged: true 特权运行不能解决当前遇到的问题,所以没必要用。
    ports:
      - "25:25"
      - "2080:80"
      - "20443:443"
      - "110:110"
      - "465:465"
      - "995:995"
      - "993:993"
    volumes:
      - "/root/podman/pmail/config:/work/config"
    runtime: runc

这时候再使用podman-compose up -d和down 应该都问题了。
但是你最好确保自己的环境是完全干净的,可以通过:
podman system reset --force && reboot 确保这点。

我想应该还有人记得不久前重装WIndows的事情:重新安装了Windows11 24H2
值得注意的是,我的电脑有两块Nvme。

产品 英特尔 SSDPEKNU512GZ (固态硬盘)
大小 512 GB
固件 002C
接口 PCIe 3.0 x4
数据传输率 4000 MB/秒
特性 S.M.A.R.T, TRIM, VolatileWriteCache
硬盘已使用 共 3923 次,累计 5115 小时

产品 ZHITAI TiPlus7100 1TB (固态硬盘)
大小 1024 GB
固件 ZTA22005
接口 PCIe 3.0 x4
数据传输率 4000 MB/秒
特性 S.M.A.R.T, TRIM, VolatileWriteCache
硬盘已使用 共 849 次,累计 220 小时

由于当初的安装不当,引导分区的管理是混乱的,两块硬盘均有一个ESP分区并且不确定正在使用的Fedora和Windows的启动项到底在哪个里面。
现在这个问题已经被我暂时解决了,WIndows和Fedora的引导文件都在TiPlus7100的ESP分区中,这也连带解决了Fedora默认无法识别本体所在硬盘之外的硬盘里的WIndows引导的问题。当时迫使我去手动添加,但是这显然不优雅:解决Fedora41 Grub2 无法通过os-prober自动添加Windows启动项的问题
而且,由于直接安装了最新版本,致命BUG更少可能没有解决:双系统对Windows更新产生的负面影响的问题。

让Grub记住上次选择的启动项

方便节约时间,上次启动Windows下次还启动Windows。

  1. 编辑GRUB 配置文件:
    打开终端并使用文本编辑器(如nano 或vim)编辑 /etc/default/grub 文件。
  2. 修改 GRUB_DEFAULT:
    找到 GRUB_DEFAULT 行,并将其值改为 saved,例如:GRUB_DEFAULT=saved
  3. 更新Grub启动项列表
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Windows神奇的能正常更新了:

昨天配完Grub启动项记忆后今天回来开机放着没联网,然后去洗澡回来发现Windows提示更新,想着双休有时间折腾索性又点一次。
结果关机开始更新居然更新成功了,也许和Grub的配置以及断网有关。

非中国大陆IPv4 443端口服务全部ERR_CONNECTION_REFUSED,大量HTTPS站点受影响。
并且此次影响是双向的,境外也无法访问境内的443端口TCP服务。
比如:https://chat.qwen.ai/
2025-08-19T17:23:15.png
由于CF自带IPv6服务,因此对几乎所有使用CloudFlare CDN 的站点(包括本站)没有实际影响。

疑似和9.3阅兵活动有关,可能是GFW审计服务器线路割接/其他操作失误导致的。

隔壁说运营商防火墙配错了家宽443屏蔽策略上到骨干网了。
神人🤣阿里云的通报基本核实了这一点。

今天看了一个温铁军讲课的视频,提到了一个重要的观点:中国经济施行的是国家资本主义。

我们建国后本来是打算先走新民主主义(资本主义)的(当时中国的社会基础是农民构成的小农经济,根本无法一步登天搞社会主义),但是随着1950年猝不及防的迎来了抗美援朝,中共领导人面临了一个问题:是照着苏联走国家资本主义(斯大林主义的实质就是国家资本主义)领取苏联趁着抗美援朝给中国的重工业大礼包还是继续坚持原有计划先柔和自然的过渡再慢慢发展实现工业化。
如果要领大礼包,苏联送到东北的重工业大礼包这个国家资本主义的东西跟新民主主义(民族资本主义)是必然发生冲突的,而且抗美援朝之前中苏在苏联眼中是竞争关系(因为苏联认为中共是民族主义的农民党,他们害怕中国要自己发展起来和他们竞争),如此重大问题毛也难以抉择,党中央和政治局多次开会讨论最终决定这个大礼包(重武器装备产线)还是要收下,所以为了能留下这个大礼包就不得不改成了国家资本主义,但是国内刚闹完革命建国成功,对外不能说革命半天又革回去变成资本主义了(况且苏联自己玩国家资本主义的时候也是称为斯大林主义没直接说是国家资本主义),所以最终决定就说:我们现在是社会主义过渡时期
在我看来即便到了今天,叫法改来改去改成:“习近平新时代中国特色社会主义” 都没有改变本质:中国是一个经济上施行国家资本主义的国家。
至于其他的方面放到现在已经多有混杂,我出了校门不怎么研究这些也理不清楚,但是说是中国特色社会主义也确实是有道理的。

前段时间我去爬山,回来写了文章:朱雀国家森林公园痛苦一日游
上传图片的时候发现当前时代的浏览器并不支持浏览HEIF格式的图片,但是这一标准在苹果和许多较新安卓设备上都已经开始推广,并且压缩率不错,所以能不能想办法让浏览器显示HEIF格式的图片呢?

找到所需开源项目:

hoppergee/heic-to Convert HEIC/HEIF images to JPEG, PNG in browser
我的需求显然早就有人在做了,这个项目利用javascript提供了一个在前端将HEIF格式图片转换成jpeg/png的方案。

引用heic-to

工作原理:

  1. 自动检测所有带有.heic或.HEIC扩展名的图片
  2. 使用fetch API获取原始HEIC文件
  3. 在浏览器中转换为JPEG格式
  4. 替换图片的src属性显示转换后的图片
<script type="module">
// 导入CSP安全版本的HEIC转换模块 需要支持ES6特性
import { heicTo } from 'https://cdn.jsdelivr.net/npm/[email protected]/dist/csp/heic-to.js';

document.addEventListener('DOMContentLoaded', async function() {
    // 检查浏览器是否支持所需API
    if (!window.fetch || !window.URL || !window.Blob) {
        console.warn('浏览器不支持HEIC转换所需API');
        return;
    }
    
    // 处理HEIC图片转换
    async function processHEICImages() {
        const images = document.querySelectorAll('img[src$=".heic"], img[src$=".HEIC"]');
        if (images.length === 0) return;
        
        console.log(`找到 ${images.length} 张HEIC图片,开始转换...`);
        
        for (const img of images) {
            const src = img.src;
            const originalAlt = img.alt || '';
            const originalClass = img.className;
            
            try {
                // 添加加载状态
                img.alt = 'HEIC图片转换中...';
                img.classList.add('heic-loading');
                
                // 获取HEIC文件
                const response = await fetch(src);
                if (!response.ok) throw new Error(`HTTP错误! 状态码: ${response.status}`);
                
                const blob = await response.blob();
                
                // 转换为JPEG
                const jpegBlob = await heicTo({
                    blob: blob,
                    type: "image/jpeg",
                    quality: 0.8
                });
                
                // 创建对象URL并替换
                const jpegUrl = URL.createObjectURL(jpegBlob);
                img.onload = function() {
                    URL.revokeObjectURL(jpegUrl); // 释放内存
                    img.classList.remove('heic-loading');
                    img.classList.add('heic-converted');
                };
                img.src = jpegUrl;
                img.alt = originalAlt;
                img.className = originalClass;

            } catch (err) {
                console.error('HEIC转换失败:', err);
                img.alt = originalAlt + ' [HEIC转换失败]';
                img.classList.remove('heic-loading');
                img.classList.add('heic-error');
            }
        }
    }
    
    await processHEICImages();
});
</script>

<style>
.heic-loading {
    position: relative;
    min-height: 100px;
    background: #f5f5f5 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="40" stroke="%233498db" stroke-width="8" fill="none" stroke-dasharray="62.8 188.8"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle></svg>') no-repeat center;
    background-size: 50px;
}
.heic-converted {
    border: 2px solid #2ecc71;
}
.heic-error {
    border: 2px dashed #e74c3c;
}
</style>

使用方法:

你可以引用上面的代码到任意html页面,通常我们把他放在header或footer里。
在Typecho上我们可以把它放在主题文件的: header.php 中

本文代码已在Github以MIT协议开源,感谢自由软件与开源社区!
DisplayMyHEIC

测试图片

测试图片1-人物
测试图片2-缆车