普通视图

Received yesterday — 2025年7月1日周天记

昕宇云IP被封事件始末

2025年7月1日 08:02

说到昕宇云可能很多人没有听过,它其实是一个云服务上,本身也是个小厂,不过如果经常逛各大论坛的话,可能会看到针对该服务商云服务器的推广活动,今天写这篇文章,不是为了诋毁和抹黑,只是想把实际情况说出来,孰对孰错,自有公论。

当时活动的时候我抢了几台机子,后来发现用不上,就转出给其它人了,最后手上只剩一台1H1G的香港机子,一个月2块,性价比还是可以,打算留着挂个单页或者探针一类,当时我安装好宝塔面板环境,发现SSH时不时就断开了(只针对我这款机器,其它的不做评价),搞得也十分恼火,然后就搁置了,再没登录过,也没使用过。

直到上周日晚上十点左右,昕宇云联系到我,说我的机器IP被封了,原因是被投诉了,机房那边反馈的内容如下:然后就没有然后了

Mail/web server abuse from 192.238.141.66 on 21 June 2025
 
Dear Abuse Team

The following abusive behavior from IP address under your constituency
192.238.141.66 has been detected:

    2025-06-21 08:43:04 CEST, 192.238.141.66, old decay: 21600, prob: 3.13%, SMTP auth dictionary attack, target 185.199.25.198 :587
    2025-06-21 22:58:28 CEST, 192.238.141.66, old decay: 21600, prob: 3.13%, SMTP auth dictionary attack, target 185.199.25.198 :587

192.238.141.66 was caught 3 times since Sat Jun 14 10:44:37 2025

original data from the mail log:
    2025-06-21 08:43:00 CEST courieresmtpd: started,ip=[::ffff:192.238.141.66],port=[46198]
    2025-06-21 08:43:04 CEST courieresmtpd: error,relay=::ffff:192.238.141.66,port=46198,msg="535 Authentication failed.",cmd: AUTH LOGIN info@montepu.it
    2025-06-21 22:58:24 CEST courieresmtpd: started,ip=[::ffff:192.238.141.66],port=[37118]
    2025-06-21 22:58:28 CEST courieresmtpd: error,relay=::ffff:192.238.141.66,port=37118,msg="535 Authentication failed.",cmd: AUTH LOGIN admin@upsidedown.it

This data is transmitted in the hope that it may help sanitizing hosts
connected to the Internet.  Please feel free to forward it to whomever
it may concern.
This is an automated report.  No thank-you messages are needed.
Data in this message is an automatic extraction from the log files.
Legend: https://www.tana.it/firewall_info.html

See also: https://www.abuseipdb.com/check/192.238.141.66
Recipient(s) found in http://rdap.arin.net/registry/ip/192.238.141.66

意思就是攻击,然后机房把我IP封了,一直问我机子干啥了,虽然我在解释,我只有个宝塔环境,还没来得及部署东西,就出现这档子事儿,我的说辞对方显然不信,他直接甩出一句话:为啥就封了你的,说实话我竟无言以对,在这个到处充满着谎言的环境中,人与人几乎没有信任,更何况在互联网这样的环境当中,我表示可以理解。

说实话,这台机子被封,对我来说没有任何影响,只不过对于主机商和服务商的处理上,有些不满,主机商那边,只要有攻击直接IP封死,并且不解封,直接一棍子打死,这种做法,我属实不敢苟同,如果有确凿证据,证明用户使用服务器干了违法的事情,封机器,甚至报警,我觉得都不为过。他们家机器我不敢用了,我害怕哪天突然机房扔一堆看不懂的攻击日志,然后把机子封了,都没地儿后悔去。

还有,就是服务商,也就是昕宇云,当然可能很多服务商都这么干,我只是觉得这种做法太过恶心,那就是充钱进去可以,但不能提现,也就是常说的 许进不许出 ,我现在在你们平台也没有机器了,而且我也说了,该扣手续费你就扣,我认,但即便是这样,昕宇云也不同意提现,虽然钱不多,但这吃相和做饭太过膈应人。

我前后用过小厂机器无数,还是第一次碰到这种情况。

很多事情没碰到自己身上,无法感同身受,针对机器被封事件我可能是个例吧,也有其它人用的比较好的,反正写这篇文章,只是给正在用或者想用昕宇云服务器伙伴的一个参考吧。

  •  
Received before yesterday周天记

吃叶黄素真能保护视力?

2025年6月27日 09:50

对于用眼重度的我们,眼睛酸涩疼痛感觉已经稀松平常了,我之前还出现过 眼压过高 ,反正被折磨的够呛,眼睛不适带来的影响不仅仅局限于眼部本身,它可能会引发一系列其他问题,比如头晕头疼这些问题,我就深有体会。这不最近老婆就说眼睛不适,买点儿叶黄素吃吃看。跟叶相关的东西,有印象的似乎就是叶酸,毕竟备孕的时候吃过,叶黄素是啥?

后来找豆包问了下,豆包这么回复的:

叶黄素就像眼睛里的 "黄金卫士",它主要集中在视网膜的黄斑区。这个区域掌管着我们看细节、辨颜色的能力,是视力最敏锐的地方。叶黄素自带 "滤镜" 功能,能吸收电子屏幕发出的蓝光和紫外线,就像给眼睛戴上了隐形的太阳镜,减少有害光线对视网膜细胞的伤害。此外,它还是抗氧化高手,能清除眼睛里的自由基,预防视网膜、晶状体等组织老化。

人体没办法自己合成叶黄素,只能从食物中获取。深绿色蔬菜(如菠菜、羽衣甘蓝)、玉米、南瓜里都富含叶黄素。科学研究发现,经常吃这些食物的人,视网膜黄斑区的叶黄素浓度更高,患黄斑病变等眼部疾病的风险更低。不过,现代人饮食结构单一,每天对着电子屏幕超过 10 小时,眼睛 "消耗" 叶黄素的速度比补充还快。所以,对用眼过度、饮食不均衡的人群来说,适当补充叶黄素补充剂确实有帮助。

好吧,也算是涨了点儿知识,只能说这东西确实有用,但具体用处多大,就不得而知了,反正就我吃的这一周多时间来看,似乎没啥效果啊,眼睛该酸胀还是酸胀,我觉得根本问题还在于用眼调节吧,毕竟根本问题在于这里,只能自我进行调节,再辅助叶黄素,可能会有一定效果吧。

我这里买的是 仁和蓝莓叶黄素酯果汁软糖 ,吃起来有点黏糊糊的,跟小时候那个橡皮糖有点儿类似,有微微甜味,口味还行,反正坚持吃一段时间看看吧。

{cat_photos}



{/cat_photos}

  •  

Typecho借助插件实现统计功能

2025年6月24日 10:40

老早就想上统计了,之前用过百度、51LA、统计鸟一类的统计工具,存在或多或少的问题吧,一定程度上也会拉低博客速度,当然自建统计也考虑过,主要还是太懒,也不想维护太多东西,所以无意中看到了 Access 插件,试用了下,效果不错,这款插件主要用于后台查看,所有接口做了鉴权,我还是想把页面放到我前端看,于是乎开始改造了。

用时一天时间完成了改造,主要做了如下改造:

  • 将统计图表适配到模版中;
  • 查询接口鉴权规则改造;
  • 处理局域网重复记录问题;
  • 页面样式调整;

统计类别主要有:

  1. 访问数统计;
  2. 来源统计;
  3. 来源路由统计;
  4. 文章浏览统计;
  5. 访客地域统计;
  6. 今日访问统计;
  7. 昨日访问统计;
  8. 当月访问统计;

预览地址,请看右下角统计图标。

Access插件下载

  •  

车子右前轮底部被撞了,应该没事儿吧?

2025年6月23日 11:42

雨已经下了快一周了,还没有停的意思,看天气预报雨估计要下到本周五,武汉好多低洼的地方都淹了,还好洪山区这片儿没咋积水,连着这么多天的雨水,总感觉到处都弥漫着潮湿的味道,车子停地库,感觉车里也是湿湿的,坐进车内总感觉有一股水汽味,让人极为不舒服。

早上在三环上跑,快要下三环的地方,有一个货车在前面开着,因为这片有施工工地,经常有车停靠里的位置,所以不是啥大事儿,我车速85左右,大车在快车道,我就想着从辅道绕过大货车直接过去(由于左侧修路,好几年了,所以只有两条道了),没想到辅道上堆了一些石头,锥桶还就放在石头前面(左边几块石头三个锥桶,右边几个石块三个锥桶,还没有提前标识,这谁受得了),这谁看得见啊,也没有提示,三环上这种对方石头,不应该最少100m左右放置提示标语么?毫无意外撞上去了,由于留给我反应时间非常短,为了避免车头直接撞击,我只能往左打,结果右车轮就撞上去了,车速比较快,感觉整个车子都飞起来了,还好石块不是很大,下了三环我立马就停下查看,这会儿还下上大雨了,真的服了,不过还是冒雨看了下,右前轮旁边塑料护板碎了,还好里面都是铁,没发现什么问题,也没漏液体,然后就继续往公司开,目前没啥问题,中午要开去检查看看,免得留隐患,真是点儿背。

今天早上再走那条路,发现已经放了修路指示牌,而且把碎石块都整理到了两堆,远距离都摆了锥桶,看样子应该是有人投诉了。

周末慈云数据在搞抽奖,我正好看到了,参与了下,没想到就一等奖了,一个128G的U盘,运气还不错啊。

  •  

何以解忧,唯有杜康

2025年6月20日 17:33

下班回家了,虽然没有下酒菜,但还是想喝一点儿。下酒菜这事儿,老婆把家里的一些零食拆包了,弄了些花生、辣鱼一类的,下酒也足够了。为了身体着想,也不适宜多喝。毛铺的口感我一直觉得不错,浓酱香型的酒我还是喝不习惯,即使是茅台都不行,朋友总说我不懂酒的人,还挑剔上了,白酒我一般喝:毛铺、稻花香、西风、汾酒都可以,当然偶尔也喝喝啤酒,主要是夏天比较合适。

最近比较忙,项目上也碰到了一些问题,近一个月加了两天班,就我而言,我还是喜欢去加班,在家太吵了,感觉脑袋都要被吵晕了,还是公司加班自在,同时也为了年底多攒攒调休。

近来一直要下雨,最近两周看着都是阴雨天,去哪儿都不方便,室内活动又感觉太闷了,孩子家里也呆不住,这种天气感觉最难了。

  •  

手机信号出现了5G-A是咋回事儿?

2025年6月17日 08:55

今天早上突然发现手机信号上出现了5GA网络,当时还纳闷呢,后来查询了下,发现是一种在5G网络上的演进和增强,然后我就立马用测速网站进行测试,结果如下:

我用的电信卡,不知道之前的广电卡效果如何,反正经我测试,某些场景下,广电卡的网速更快更稳定,当然人口密集的地方除外,感觉最近电信的网速时不时抽风,不过也比公司的WIFI强得多,下面是公司WIFI的测速

值得一说的是,我的卡一是移动的,似乎从来没出现过5GA信号,同样的地方,电信就是有。

下面再分享下5GA相关知识,不得不说,确实是个好东西啊。

什么是5GA

5G-A(英文全称:5G-Advanced,中文名:5G 演进),是基于5G网络在功能上和覆盖上的演进和增强,是支撑互联网产业3D化,云化,万物互联智能化,通信感知一体化,智能制造柔性化等产业数字化升级的关键信息化技术。5G-A与5G并行工作、5G-A负责支持部分有较高要求的应用场景。5G-A在网络速度、延迟、连接数等方面实现显著提升,同时引入了通感一体、无源物联、内生智能等全新的革命性技术,能更好地匹配人联、物联、车联、高端制造、感知等场景

5G-A有什么优势

5G-A的连接速率相较于普通5G,有10倍的提升。5G初期数据下载最高速率为千兆,而5G-A理论上直接跃升至万兆。陈志刚举例说,以前用5G下载一部高清电影可能需要等上几分钟,而5G-A短短几秒就能搞定。实测中5G-A表现也十分出色,5G-A的下载速度可达每秒1706.13兆,相比5G网络快了3倍多。如此高速率让海量数据全面上云端、直播全民化不再是难题,也能为扩展现实、裸眼3D等创新业务提供有力支撑。

如何才能用上5G-A

要用上5G-A,需要满足以下几个条件。首先是手机硬件支持。目前,苹果iPhone 13及之后的机型,以及华为、OPPO、小米等品牌主流机型都已适配5G-A。用户可通过手机品牌官网或客服查询手机是否支持5G-A网络。

其次是网络覆盖到位。用户所在地区需要有运营商部署5G-A网络。陈志刚告诉记者,中国移动已公布首批100个商用城市,并计划2026年实现全国覆盖。中国电信已在121个城市规模部署升级5G-A基站,2025年计划覆盖超过150个重点城市。中国联通也在积极推进,如湖南联通已开通5G-A基站超4000站。用户可通过运营商APP等方式查询实时覆盖范围。

最后是对手机进行网络设置。苹果手机进入"设置-蜂窝网络-5G",选择"启用5G"或"自动5G";iOS 18.4及以上版本,在5G-A覆盖范围内系统会自动更新并切换到5G-A网络。安卓手机可在设置中搜索"5G网络模式",选择"SA优先"。

在时延表现上,5G单向时延约10毫秒,5G-A则压缩至4毫秒。"这对实时性要求极高的应用来说意义重大。"陈志刚说,比如在远程医疗领域,医生操作手术器械的指令能更及时地传递到患者身边的设备上,大大提升手术成功率;自动驾驶汽车也能瞬间响应路况信息,及时避免事故发生。

5G-A的连接能力有了大幅跃升。通感一体技术赋予基站雷达感知力,让网络不仅能通信,还能进行环境感知等功能。无源物联网实现了低成本海量设备互联,使得万物互联走进现实。天地一体融合卫星网络,解决了偏远山区、远洋航行等特殊场景的联网难题,让这些地区也能稳定联网。“此外,5G-A支持每平方公里百万级设备连接,定位精度也从米级提升到厘米级,能更好地满足工业自动化、智能物流等领域需求。

  •  

Docker部署Drawnix可视化白板工具、兼顾思维导图

2025年6月13日 10:36

目前办公用的一款亿图的 MindMaster ,虽说免费功能也够用了,有时候其它地方也偶尔会用到,每次都安装软件也麻烦,之前用过一款 mind-map 不尽如人意,今天正好看见博友的项目推荐,感觉Drawnix是我所需要的,准备部署来使用。

功能特点

  • 免费 + 开源
  • ⚒️ 思维导图、流程图
  • 画笔
  • 插入图片
  • 基于插件机制,导出为PNG,JSON(drawnix)
  • 自动保存(浏览器缓存)
  • ⚡ 编辑特性:撤销、重做、复制、粘贴等
  • 无限画布:缩放、滚动
  • 主题模式
  • 移动设备适配
  • 支持 mermaid 语法转流程图
  • ✨ 支持 markdown 文本转思维导图(新支持 )
基于以上内容,我觉得功能性上而言,毋庸置疑。

我部署项目有个习惯,一般优先选择源码部署,看了下该项目也就是个静态项目,不依赖其它东西,所以我就尝试把代码拉下来编译,试了几次发现一直有问题,node版本也切换了好几个,最终都没有成功,由于我本地各类型项目众多,环境也有很多套,所以思量再三,考虑放弃源码部署,采用docker部署。

因为作者并没有提供官方镜像,但好在项目提供了 Dockerfile 文件,我们可以自构建一个。

Docker compose命令如下

version: '3' # 最新版docker compose删除该行
services:
  drawnix:
    image: ydxian/drawnix:latest
    container_name: drawnix
    ports:
      - "8200:80" # 冒号左侧可自行修改
    restart: always

部署成功后,浏览器输入http://127.0.0.1:8200即可访问服务。

同时也可以直接在 宝塔面板中 操作

  1. 安装docker:点击左侧docker,如果没有安装,直接安装即可;
  2. pull 镜像:选择 线上镜像,输入 drawnix,拉取即可;
  3. 运行容器:本地容器中选择drawnix镜像,直接直接创建容器,添加暴露端口号,左侧8200,右侧80即可,如果需要用端口号访问,记得宝塔中放行该端口号;
  4. 配置域名反代:域名解析好,宝塔中添加站点,选择静态,站点设置中添加反代即可;

我部署的地址:drawnix

drawnix源码仓库

  •  

服务器磁盘满了,该如何清理?

2025年6月11日 17:18

突然发现服务器磁盘占比到了80%了,其实也没存储啥,附件图片都在cos上,那就奇怪了,一步步排查看看吧

使用以下命令查看各目录占比情况,一步步排查大文件

du -h --max-depth=1

小水管机,太难了,一查询文件,内存就爆红了,哎

建议避免全盘扫描,最好带上目录,类似下面这种

du -h --max-depth=1 /var/log

先排查日志

宝塔中自带有日志工具,可以直接使用,扫描成功后会显示日志占比,我的只有100M的样子,所以肯定不是这个问题,继续往下走

docker镜像及容器

我之前使用过docker,看了下 /var/lib/docker/overlay2 占用了接近4G,其实我只用了一个镜像,也才200M,所以也需要清除

# 清理未使用的镜像
docker image prune -a

# 清理未使用的容器
docker container prune

# 清理未使用的数据卷
docker volume prune

# 一次性清理所有未使用的资源
docker system prune -a

# 查看Docker磁盘使用情况
docker system df

清理完毕后,发现内存 +4G ,继续往下走。

清理了定时备份

数据备份很重要,重要数据库我都是1天备份一次,网站一周备份一次,当然只保留了3份,所以占比也不是太大,不过我还是选择清理了一些,内存 +1G

定时清除日志脚本

每次手动清除日志太麻烦了,弄个脚本自动清除吧。宝塔中计划任务添加自定义脚本,然后设置清除时间即可

#!/bin/bash

# 定义日志目录
LOG_DIR="/var/log/myapp"

# 清除日志文件
find "$LOG_DIR" -type f -name "*.log" -mtime +30 -exec rm {} \;

# 或者清空日志文件而不删除
# find "$LOG_DIR" -type f -name "*.log" -exec truncate -s 0 {} \;
我这一套下来,大概省了10G左右。
  •  

Typecho实现全站图片懒加载

2025年6月7日 09:42

对于博客网站来说,图片加载慢是导致网站迟迟加载不完的罪魁祸首,本站实现了所有图片懒加载,这里分享下本站是如何实现的,整体过程也比较简单。本站教程基于Typecho,其它博客程序请自行研究,不过区别并不大。

我这里使用的 lazysizes.min.js 来实现懒加载。有必要简单介绍下LazySizes

LazySizes简介

LazySizes是一款终极而轻量级的懒加载库,专门用于处理响应式图片、iframe以及脚本等资源的延迟加载。其核心特性包括:

  • 高性能:旨在提供极高的性能表现。
  • 易于集成:只需在你的网页中加入JS文件,并对需懒加载的元素添加lazyload类即可。
  • 自适应图片:全面支持响应式图片标准,如标签和srcset属性。

主要功能亮点

  • 自动优先级资源管理,区别对待关键和临近视口的元素,提高感知性能。
  • 兼容性广泛,适用于各种前端框架和动态页面技术。
  • 支持未来的响应式图片规范,无需额外配置。
  • 提升SEO,不会影响搜索引擎抓取。

引入LazySizes

github下载地址

其它安装方式

npm install lazysizes --save
yarn add lazysizes --save

使用

使用上也比较简单,在需要使用的类上添加 lazyload 即可,比如我这里

<img class="comment-list-empty-img lazyload" 
     src="<?php $this->options->themeUrl('/static/images/null.svg'); ?>"
     data-src="<?php $this->options->themeUrl('/static/images/null.svg'); ?>"
     alt="<?php echo _t('暂无评论数据'); ?>"
>
  •  

阿胶块到底要怎么吃才行?

2025年6月5日 15:15

阿胶作为传承3000年的滋补上品,其驴皮熬制工艺被列入国家级非物质文化遗产。传统阿胶块需经"九九八十一天"熬制,具有补血滋阴、润燥止血的功效,《本草纲目》记载其"疗吐血衄血,血淋尿血"。真的是好处多多啊。我顺便也查了下阿胶方面的知识,基础形态的阿胶就有很多种:

阿胶块‌

  • 传统黑色硬长方体,由驴皮经40余天熬制、切胶而成46
  • 需二次加工(打粉或熬膏),营养保留最完整但直接食用口感差14
  • 胶原蛋白含量≥80%,代表品牌:东阿阿胶、福牌24

阿胶糕‌

  • 阿胶块融化后加入核桃、黑芝麻、黄酒等配料冷却切块45
  • 即食便捷,含阿胶比例约10%-40%(品质差异大)16
  • 口感香甜,适合日常滋补67

阿胶粉‌

  • 阿胶块研磨或喷雾干燥制成46
  • 含阿胶40%以上1,85℃以上热水冲服吸收快412
  • 现代创新速溶型(如添加红枣萃取物)增速显著11

即食鲜阿胶‌

  • 粉末状创新形态,可直冲水/热牛奶饮用17
  • 主打"免煮即食",迎合年轻消费需求11
除了基础形态外,还有不少复合形态,比如:阿胶浆、‌阿胶膏 一类的。

由于前段时间老婆流产了,姐姐就买了两盒阿胶用于滋补身体,上次我也吃了一盒,不过是 阿胶糕 ,拆袋即食那种,里面有很多小包装,我吃了一盒,口感一般,毕竟是滋补身体的。这次买的是 阿胶块 ,类似巧克力一样,真是"坚硬如铁",第一晚上我用铁腕蒸了一小块,结果半小时过去了,还没完全融化,看样子这东西必须要熬制了,不过也不是个容易的事儿,所以就考虑直接打成粉末,为了这个去买个专门打阿胶机器也不显示,所以就开始找药店问问能不能处理。

后来找了一家,说是可以免费打粉,午饭后我顶着大太阳出发了,结果到药店人却不在,说有事儿出去了,这不是坑人么?约好的,没办法只能重新找了,还好又找到了一家,然后立马就动身过去了,也是个药店,交流一番后,就开始打磨了,整个过程30分钟左右,没想到这么硬的东西,打完就成了豆浆粉一样的东西,满打满算也就两袋吧,整个过程还是挺顺利的,不得不为帮忙的小哥点个赞。

小哥反复说,阿胶夏天不要吃,等冬天吃,不然会上火的,毕竟是大补的东西,所以只能放着了,早知道就先不打粉了。
  •  

路边停车收费,合理吗?

2025年6月3日 11:34

路边停车收费真的合理么?随便搞一条马路,竖一个收费标志牌,就可以开始收费了,总感觉有一种,"圈地为王"的感觉。有的甚至连停车线也不画,收费指示牌也看不到,你过来停车没人管,等你走的时候,收费的人就来了,关键是收费还不低,甚至比停车场还要高,对于此类行为我是相当反感的。

这是我六一那天,带闺女去游乐园玩的时候被贴的,严格意义上来说,这并不是交警贴的,而是路边穿黄马褂收费员贴的,他们天天骑着电动车沿着路边拍车辆,然后上到系统,就开始计费了,当然也有更智能一点的,你停车后,有仪器自动识别,如果你走的时候,没有收费员正好在场,你当时就不用缴费,但是停车记录已经产生,下次碰到了,还是会让你补齐费用的。

还好这一次路边是有停车线,而且正好有收费标识牌,然后收费还算合理(2元/小时),后来收了6块,后来说系统查到我还有5笔待支付记录,看了下最早一笔在2019年,在汉口汉阳那块,当时并不知道它计费了,而且费用也不低,大概是5元一小时,现在就开始拦下我,让我补齐费用,我当时就和工作人员争执了,你们路边有的连标识都没有,随便搞一条马路,就开始拍车牌计费,谁给你们的权利,给我说清楚,不然这费用我不会补,然后那个人支支吾吾也没买说个所以然,然后让我把这次停车的6块补缴了,就让我走了。

之前和朋友也聊到过类似话题,他回公司一般都停楼下巷子里的路边,偶尔会被计费,收费的人说是合法路边车位计费,朋友当时也没多想,就给了,直到后来被贴了罚单,说是违法停车,自那之后,再也没给所谓路边收费的人交过钱了。

有没有过类似经历的,你们都咋处理的?一起交流交流!
  •  

真是离谱,家门口的垫子也有人偷

2025年5月30日 11:42

昨天家里人说中午出去玩会儿的功夫,门口的垫子不见了,被人偷了,之前也被偷过一次,因为那会儿还没正式住进来,就没追求这事儿,没想到又来这一招,门口垫子就那么大点儿,也不值个啥钱,真不知道这些人是咋想的,这东西也偷。

得知消息,立马就反馈到物业,让帮忙查下监控,看有没有什么线索,后来得到反馈,监控没有啥异常,估计要么是同楼栋的人拿走了,要么就是其他楼栋的人,把东西装起来带走了,自认为小区里人的素质还可以,90%都是年轻人和小孩儿,感觉不至于吧。

之前小区有人在业主群里说,自己放楼顶晒太阳的花盆被拿走了,花和土都倒出来了,然后把花盆拿走了,闹得沸沸扬扬,后来监控查到了,是个保洁拿走了,但是物业不愿公开监控,也不知道具体谁拿走了,只是把东西送回来了,现在的物业、保洁、保安普遍素质不高,反正收钱第一名,其它所有事儿都懒得管,把业主都当傻子,看样子得把不交物业费进行到底了。

后面考虑换个带监控的门锁,或者门口按个监控,不然门口还不能放东西了,谁都可以拿走,还找不到人,真是离谱。

  •  

满心记更换域名啦,顺便送几个域名

2025年5月27日 11:54

经过慎重考虑,我决定对博客域名进行更换。原域名qq.mba因续费价格从首年百余元暴涨至292元/年,虽仍可使用至2027年,但本着务实原则,决定提前启动域名迁移计划。

域名更换:启用全新顶级域名 zhoutian.com

  • 中文双拼"周天"既朗朗上口,又蕴含"假日休憩"之意
  • 与博客记录生活、分享思考的定位高度契合
  • 更符合中文用户记忆习惯

博客名称从"满心记"正式更名为"周天记"

  • 新名称既保留原有记录生活的内核
  • 又赋予"周期性沉淀"的深层含义

这次调整看似突然,实则是三年建站经验的自然选择。早前使用qq.mba时主要考虑简短易记,如今更注重域名与内容气质的统一。原域名将逐步停用。

域名切换期间会做好301重定向,确保原有内容可访问。

域名留之无用,弃之可惜,留给有需要的人,准备赠送几个出去,先到先得

  1. nzqq.cn(阿里云)- 已送出
  2. nih.cc(阿里云)- 已送出
  3. says.top(阿里云)- 已送出
  4. ere.cc(西部数码)- 已送出
  •  

用百度地图做个足迹地图

2025年5月22日 16:52

今天看到 小生博客的文章,就花了点时间整到我的博客里了,考虑要不要单独做成页面,想了下,还是放 关于页里面,后续看情况,要不要独立出来。

预览效果,有兴趣的可以往下看,比较简单:

一、申请百度地图账号,创建应用

百度地图,百度要求实名认证。

注意:创建应用要选择【浏览器端】

以上全部通过后,获取 访问应用(AK)

二、创建map.php

<?php
?>

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的旅行足迹</title>
    <style>
        #container {
            flex: 1;
            width: 100%;
            height: 100%;
            border-radius: 10px;
        }

        /* 信息窗口样式 */
        .info-window {
            padding: 0;
            border-radius: 10px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
            text-align: center;
            border: none;
            background: #fff;
            overflow: hidden;
        }

        .info-header {
            text-align: center;
        }

        .info-header h3 {
            margin: 0;
            font-size: 20px;
            font-weight: 600;
            color: #333;
            text-align: center;
        }

        .info-content {
            padding: 0 15px 15px;
            text-align: center;
        }

        .info-content p {
            margin: 0 0 15px;
            font-size: 14px;
            line-height: 1.6;
            color: #666;
            text-align: center;
        }

        .info-content .photos {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 10px;
        }

        .info-content img {
            width: 100px;
            height: 100px;
            object-fit: cover;
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .info-content a:hover img {
            transform: scale(1.05);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        }

        .BMap_cpyCtrl,
        .anchorBL {
            display: none !important;
        }
    </style>
</head>

<body>
    <!-- 地图容器 -->
    <div id="container"></div>

    <!-- 引入百度地图API -->
    <script type="text/javascript"
        src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak= 你的KEY"></script>

    <!-- 引入足迹点数据 -->
    <script src="<?php $this->options->themeUrl('style/markers.js'); ?>"></script>

    <!-- 地图初始化和足迹点添加 -->
    <script>
        // 地图初始化
        var map = new BMapGL.Map("container");
        var point = new BMapGL.Point(108.219771, 34.933863);
        map.centerAndZoom(point, 5); // 初始化地图,设置地图级别为5
        map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
        console.log(map);
        // 设置地图样式
        map.setMapStyleV2({
            styleId: 'e538ad167219263086d18744cc59cd32'
        });

        // 添加足迹点和信息窗口
        markers.forEach((element) => {
            let point = new BMapGL.Point(element.latLng[0], element.latLng[1]); // 创建坐标点
            var marker;

            // 如果有自定义图标,则使用自定义图标
            if (element.icon) {
                var myIcon = new BMapGL.Icon(element.icon, new BMapGL.Size(26, 26));
                marker = new BMapGL.Marker(point, { icon: myIcon });
            } else {
                marker = new BMapGL.Marker(point); // 创建默认标记
            }

            map.addOverlay(marker); // 将标记添加到地图上

            // 创建信息窗口
            let opts = {
                width: 320, // 信息窗口宽度
                height: 0, // 信息窗口高度
                enableMessage: false, // 禁用默认的关闭按钮
                enableCloseOnClick: true, // 点击地图关闭信息窗口
            };

            // 构建信息窗口内容
            let info = `
                <div class="info-window">
                    <div class="info-header">
                        <h3>${element.name}</h3>
                    </div>
                    <div class="info-content">
                        <p>${element.desc}</p>
                        <div class="photos">`;
            if (element.photo && element.photo.length > 0) {
                element.photo.forEach((photoUrl, index) => {
                    // 获取对应的链接
                    let linkUrl = element.links ? element.links[index] : "#";
                    // 添加图片链接
                    info += `<a href="${linkUrl}" target="_blank"><img src="${photoUrl}" alt="Image ${index + 1}"></a>`;
                });
            }
            info += `
                        </div>
                    </div>
                </div>`;

            let infoWindow = new BMapGL.InfoWindow(info, opts); // 创建信息窗口对象

            // 为标记点添加点击事件
            marker.addEventListener("click", function () {
                map.openInfoWindow(infoWindow, point); // 打开信息窗口
            });
        });
    </script>
</body>
</html>
<?php
?>

三、创建marker.js

// 坐标查询:https://api.map.baidu.com/lbsapi/getpoint/index.html
var markers = [{
        latLng: [89.255025, 42.99805],
        name: "葡萄沟",
        icon: "zj.png",
        desc: "转车的时候下去看了看,确实和书本上描述的一样。"
    },
    {
        latLng: [75.996862, 39.476993],
        name: "喀什",
        icon: "zj.png",
        desc: "一出生就过去了,从小长大的地方,呆过十几年,不过现在已经没什么印象了。"
    },
    {
        latLng: [116.280592, 40.004567],
        name: "颐和园",
        icon: "zj.png",
        desc: "有点古典风格,到此处,感觉自己也有点儿儒雅的气质。"
    },
    {
        latLng: [116.024067, 40.362639],
        name: "八达岭长城",
        icon: "zj.png",
        desc: "不到长城非好汉,我去了五六次,应该是绝对的好汉了吧!"
    },
    {
        latLng: [116.403414, 39.924091],
        name: "故宫",
        icon: "zj.png",
        desc: "记得那会儿应该是20年前的事儿了。"
    },
    {
        latLng: [116.079068, 40.296759],
        name: "居庸关长城",
        icon: "zj.png",
        desc: "体验感一般,去过的人都不会选择再去了。"
    },
    {
        latLng: [120.127813, 30.228902],
        name: "西湖",
        icon: "zj.png",
        desc: "之前工作住周边,有事儿没事儿就去西湖转转,估摸着应该转了几十圈了吧。"
    },
    {
        latLng: [120.155526, 30.236867],
        name: "雷峰塔",
        icon: "zj.png",
        desc: "其它区域都是免费,维度雷峰塔要收费,原因是要坐船过去。"
    },

    {
        latLng: [124.831767, 45.148014], // 图文带跳转的
        name: "松原市",
        icon: "zj.png",
        desc: "松原市。",
        photo: [
            "https://img0.baidu.com/it/u=3915829036,420838185&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=1083",
            "https://img0.baidu.com/it/u=3915829036,420838185&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=1083",
            "/usr/uploads/2025/01/1454283446.jpg",
            "/usr/uploads/2025/01/3919603999.jpg",
        ],
        links: [
            "/index.php/archives/138/",
            "/index.php/archives/138/",
            "/index.php/archives/138/",
            "/index.php/archives/138/",
        ]
    },
];

四、嵌入使用

我这里是直接在关于页面引入,选择引入地方直接写好地址即可,我这里没有单独做页面,有需要做页面也可以单独改一下。

<?php $this->need('parts/map.php'); ?>
我简单实现了下,可以根据自己主题进行调整,特别是样式,需要根据自己主题进行适配;

参考文章:利用百度地图做博客足迹地图HTML源码

  •  

陪老婆去做了流产

2025年5月21日 12:00

与我而言,这个话题是沉重的。考虑再三,还是决定记录下来。

其实什么事儿都不是空穴来风,上月末发了一篇文章 聊聊我对生二胎的一些想法 ,其实关于这个问题,我一直在思考,从还没有生一胎的时候,一直到现在,我都有考虑。上次我老婆突然跟我说,可能怀了二胎,我还挺诧异,因为我们没有严格意义上要二胎计划,可以说是意外之喜,然后就买了试纸测量了,发现确实怀了,然后就找了个周末的时间去医院检查,由于周数比较小,所以也没查出来个啥,就是各项指数(孕酮)偏低,让多注意休息和补补孕酮啥的,让每周都过来看看。

经过了心里的一些挣扎后,既然孩子来了,那肯定是和我们家有缘分的,所以大家也都接受了,也开始按照从饮食起居上逐步调整,已经做好心里准备,迎接新宝宝的到来,为此老婆还规划了预产期,以及宝宝名字之类的。

连着去了两周多,孕酮指标一直上不去,而且做了B超,医生说没看到胎心,有可能是孕囊有问题,也有可能是空孕囊,当然也可能是怀孕周数不准,孩子太小等原因,我们潜意识里不愿意相信这样的结果,所以有换了个妇幼,结果仍然如此,虽然结果都一样,但诊断方面缺有不同,有的医生建议尽早流掉,这样对身体损伤最小,有的医生建议再等一周看看,可能孩子太小,查不出来也正常,后来找了一个朋友把片子给他看了,他建议直接流掉,说这个孩子即使过几周胎心出来了,也感觉是个发育缓慢的胎儿,且不说再以后过程中,会不会死亡,总的来说就是胎儿质量不高,不建议留下,留下以后可能也是伤人伤己。

得知这个结果之后,一时之间心里还是很难接受的,毕竟全家已经接受了这个小生命,突然又要舍弃掉它,真的是有点残忍,但为了以后,还是决定不要了,期间老婆很伤心,我也一直给她做心里疏导(其实就是陪着说说话),在做了大量检查后,最终安排入院,接受流产手术。

手术很成功,现在已经在家调养,不管怎样,身体还是需要调理好,不管以后还考不考虑二胎的事儿,也许某一天,我的博客里会分享二胎的喜讯,也有可能永远不会。

  •  

给小主机做一次大扫除

2025年5月15日 19:15

去年整个了低功耗的小主机,借助 Frps 做映射,实现外网访问,我把一些有大量存储需求的应用,都搬到小主机上了,本地也搭建了影音库和一些常用的应用,我的小主机配置还是比较高的,功耗较低,一天大概0.3 ~ 0.4度电的样子,当然存储最多只能扩展到3T,不过也基本够用了。

小主机真的蛮小的,比巴掌还小,也不重,散热方面感觉还可以,即使大热天,机器也没有明显发热现象,迄今为止,还没出现过问题,这点儿还是值得肯定的。

小主机从去过年到现在,距离一年也不久了,最近发现小主机风扇转的厉害,后来发现出风口和风扇都积灰了,也好久没关注它了,今天正好有点儿时间,就给简单清理一下吧。

拆卸还是比较简单的,底部四颗螺丝卸掉,就可以拿掉顶部机盖了,然后把电路板四颗螺丝也卸掉,就看到底部风扇了,主要是风扇和出风口积灰了,还有一些UBS、网口等等也有灰尘,我就用小刷子和湿巾简单清理了下,确实要干净了不少,弄好了就开始安装回去了,还是挺方便的。

底座安装回去之后的样子,一个512G的SATA硬盘,一个16G + 32G的内存条,一个2T m2固态硬盘,还可以扩展高速TF卡,各方面都很满意。

家里有小孩儿,好多地方不能放,只能放门口玄关位置,好了,小主机满血复活了!

  •  

一杯酒,一家人

2025年5月9日 14:22

不得不感叹,时间过得可真快,感觉才刚到25年,没想到已经距离年中不远了,这不生日也到了,由于是工作日,所以晚上到家也七点了,妈妈给做了菜,然后媳妇儿从公司点了两个菜,买了蛋糕,一家人一起吃个饭,既简单又实在,美中不足的是父亲没到场(上班,没有假期)。

也是开了瓶12年的白云边庆祝下,虽只有我一人饮酒,其它人也都喝饮料作陪,给闺女准备了金豆芽饮品,她也频繁跑上来跟我碰杯,虽然她还不太会表达,但看得出来,她很开心,不光有喝的,一会儿还有蛋糕可以吃,我们吃着饭,她围着桌子蹦蹦跳跳的,气氛格外融洽。

按道理说,今天也是闺女阳历生日,碰到一起了,所以就一起过了,自然蛋糕也要偏向于孩子风格,所以选了这个粉色系列,插上18岁的两根蜡烛,今年比较贪心,许了很多愿望,不敢奢求太多,只求一家人在往后的日子里 平安喜乐 即可。

我是一个感性的人,有时候看一些短视频,看着看着眼眶就湿润了,我也不知道为什么。

我一直觉得人的一生其实很短暂,悄悄把我们从看故事的人,变成了故事里的人。那些曾经让我们落泪的画面,如今正在我们自己的人生里一帧帧上演。这大概就是成长的滋味吧——既熟悉又陌生,既温暖又带着些许酸涩。
  •  

公司不续签劳动合同了,是否有赔偿?

2025年5月6日 16:56

最近有朋友聊到关于员工合同期满之后,如果公司单方面不续约情况下,是否有赔偿问题,就这方面拿出来聊聊,说实话,没经历过,我也不太懂,所以就找了各方面资料,汇总在一起,看是否有经历过的朋友,能给给建议。

大概情况我简单描述下,朋友在现在公司已经四年多了,前不久刚续签了一次合同,每次合同期为两年,两年到期后,公司HR会找合同期满员工续签合同,然后到上级部门审批,通过后,合同生效,合同内部没有明确说明续约相关条款,我那朋友也算是人到中年了吧,担心公司单方面不续约,导致失业,那么这种情况下是否有赔偿呢?他问我的时候,我也有点懵,因为确实没碰到过,按道理来说,公司不续约了,应该就不存在赔偿问题,由于不确定,所以我找了AI询问了下,大概结果如下:

OPENAI给出的回答:

  1. 劳动合同的性质:如果你的劳动合同是固定期限合同,并且在合同到期时公司不续签,通常情况下,雇主不需要支付额外的赔偿或补偿。
  2. 公司政策和规定:有些公司可能会根据内部政策提供一定的离职补偿或遣散费,虽然这并不是法律要求,但可以向人力资源部门询问相关政策。
  3. 劳动者的工作年限:在某些情况下,如果劳动者在公司工作了较长时间,可能会根据公司政策或集体合同获得一定的经济补偿。
  4. 法律法规:根据《中华人民共和国劳动合同法》,如果公司在合同到期后不续签且不符合特定的解雇条件,劳动者通常没有权利要求赔偿。但如果公司不合法解除劳动合同,劳动者可以要求赔偿。
    协商结果:在合同到期前,劳动者可以与公司进行协商,看看是否能够达成协议,获得一定的补偿。

豆包给出的回答:

  1. 需要支付经济补偿的情况:如果公司降低劳动合同约定条件续订劳动合同,劳动者不同意续订的,或者公司在劳动合同到期后直接决定不续签的,公司应当向劳动者支付经济补偿。经济补偿按劳动者在本单位工作的年限计算,每满一年支付一个月工资的标准向劳动者支付。六个月以上不满一年的,按一年计算;不满六个月的,向劳动者支付半个月工资的经济补偿。月工资是指劳动者在劳动合同解除或者终止前十二个月的平均工资。例如,劳动者在公司工作了 3 年 8 个月,劳动合同到期公司不续签且不存在法定续延情形,公司应支付 4 个月工资的经济补偿。
  2. 无需支付经济补偿的情况:公司维持或者提高劳动合同约定条件续订劳动合同,劳动者不同意续订的,此种情形下公司无需支付经济补偿。比如,原工资待遇是每月 5000 元,公司提出以每月 6000 元续签,劳动者拒绝,公司就不用支付补偿。

DeepSeek给出的回答:

  1. 公司主动不续签‌:必须按工作年限支付经济补偿,每满1年支付1个月工资,6个月以上不满1年按1年算,不满6个月支付半个月工资。
  2. 公司降低续签条件‌:若新合同存在降薪、调岗等不利变更,员工拒绝续签的,公司仍需支付补偿。
  3. 员工在医疗期、孕期、产期、哺乳期,或工伤治疗期间的,合同自动延续至情形消失,公司不续签属违法,需双倍赔偿。
  4. 合同到期后继续用工超1个月未签新合同的,从第2个月起需支付双倍工资(最长11个月)。

综合相关AI给出的结果,以及结合度娘的相关内容,综合到一起,基本上就是以下内容:

  1. 公司维持或提高原合同条件(如薪资、岗位不变或更好),员工拒绝续签的,公司无需补偿;
  2. 公司如果主动不续签情况下,按工龄执行 N 的赔偿机制,公司工作了4年,那么N就是4;
当然除了以上情况外,也有的人说,公司不做任何赔偿,但目前我没有找到实际经历过此事的朋友,希望有此类遭遇的朋友,能明鉴。。。
  •  

聊聊我对生二胎的一些想法

2025年4月29日 15:04

每次和老婆坐在客厅算家庭账本,算到最后总会陷入沉默。备孕二胎的念头像颗野草,时不时在心里冒头,但一想到现实,又赶紧把这火苗掐灭。产检费、顺产的几千块钱倒是小钱,可孩子出生后,乃至以后培养教育确实是一笔不小的投资。

隔壁王姐家老二刚出生,光是奶粉钱一个月就得两千多。原本给老大报乐高课的钱、全家出去旅游的预算,统统都得砍掉。现在老大上幼儿园,光校服费就分春夏秋冬四套,更别提兴趣班了。小区里的孩子不是学钢琴就是练舞蹈,当家长的哪能看着自家孩子啥特长没有?就算不报热门的,报个普通绘画班,一年下来也得小一万。​这是从邻居聊天得知的。

白天在公司对着电脑敲代码,眼睛酸得睁不开还得改方案。领导一个电话,周末就得加班。好不容易下班回家,老大缠着要陪着玩,骑车、遛弯,哄睡完自己累得倒头就睡。要是再来个小的,半夜喂奶、换尿布,第二天还得强撑着去上班,想想都觉得喘不过气。上个月部门裁员,好几个三十多岁的同事都走了,现在在公司每天都提心吊胆,生怕哪天就轮到自己。​

随着父母年龄大了,身体也或多或少会出些毛病,上周父亲说脖子后总是很胀痛,我们没有时间,他自己去医院拍了片子,医生说可能是血液太粘稠导致的,具体不敢确定,要进一步检查,妈妈身体也不是很好,一直说生了二胎全家人都被绑一起了,一个人也看不过来两个孩子,毕竟孩子到处跑啊,闹啊什么的。好不容易把第一个孩子养大了,还敢带着全家再走一遭吗?说实话,我是真没这个勇气。

家里现有房子比较小,目前住正好,如果有二胎了,可能就住不下,要考虑换房子的事儿了,都奔35的人了,谁都不敢说工作会一直稳定,还敢继续背房贷吗?虽然现在房价降了些,政策也有所调整,看似一切条件都有利于购房,但事实真的如此吗?我真的不相信。

现在的社会卷得太厉害,孩子从上幼儿园就开始 "拼爹妈" 。朋友家孩子才上小学,周末时间表排得比上班族还满,奥数、英语、编程轮着来。都说不能让孩子输在起跑线上,可这起跑线到底在哪儿?就算咬着牙供孩子读完大学又怎样?现在本科生遍地走,找工作照样难。我堂哥名牌大学毕业,还不是天天加班,工资也就勉强够生活,我也实在是不想自己辛苦培养出来的孩子,最终沦为资本家的牛马一辈子。​

更现实的是,老婆也三十好几了,要是再生二胎,身体能不能吃得消先不说,现在干的互联网工作肯定保不住。这个行业更新换代太快,二十多岁的年轻人一茬接一茬,等老婆休完产假,哪还有她的位置?转行又能做什么?超市收银、家政保洁,工资低不说,以后养老都成问题,当然也少不了对孩子的帮衬。​

有时候老婆和我开玩笑说 "再生一个,以后老了多个人照顾" ,话刚出口自己都笑了。想想我们现在,一年到头回不了几次老家,给父母的陪伴少得可怜,哪敢指望孩子以后能多孝顺?可看着老大一个人在家玩,又觉得孤单。小区里那些两个孩子的家庭,虽然鸡飞狗跳,但热热闹闹的也让人羡慕。​

和朋友聊过之后,分享出来的故事,然后结合自己的一些感触,写下了这篇文章。
  •  
❌