刷到视频吐槽景点造假,我想起最近的 贵州之行 。去黄果树瀑布之前,我们先去了小七孔,路上很多小瀑布。黄果树我不敢说,小七孔的瀑布一定是人工抽水,就那个源源不绝的滂沱水量不可能是自然的。 当场我就在想,看到的是人造瀑布是不是扫兴的事情?但是又一想,这个地方我这辈子只会来这么一次,如果看不到“鲜活”的瀑布,只有平平无奇的荒山,是不是更扫兴? 回到底层逻辑就是景区商业化的两难。商业化重,千篇一律没意思;商业化轻,配套不足不好玩。 不过我现在旅游都是亲子游,只能妥协选择商业化程度高的目的地。毕竟从孩子角度考虑,安全比好玩重要。

在国产奇幻灵异题材中,《灵魂摆渡》始终是独树一帜的存在。它摒弃浮夸特效与流水线爽剧套路,以温柔悲悯的叙事笔触,娓娓道尽生死无常、因果轮回与人性执念。也正因这份独特的人文质感,历经十年岁月沉淀,这部作品依旧扎根观众心底,成为国产影视中无可替代的青春白月光。我始终不愿用“国产灵异天花板”这类同质化标签简单定义它。相比于普通观众的旁观视角,我拥有一个小众且真切的独特切入点,这也是我能读懂整部剧宿命...

上周五快下班,群里突然弹出一条消息。老板要统计一些产品的销售额,还要按达成率排序, “下班前给我”。 我盯着屏幕上那个拖了三屏的公式,深吸一口气。 真他妈想关机走人。 好几次都这样了,I 服了 U … 顺手把这个 SUMIFS ​ 函数的使用记录一下,也扩展一下 LET 函数。 一、SUMIFS:它不是计算器,是带筛子的漏斗 很多人以为 SUMIFS 就是"多条件加一下"。错了。 它的真实工作流程是: 逐行扫描 → 全部条件都满足 → 把对应数字拎出来 → 加总 。只要有一个条件不匹配,这行直接跳过,连看都不看。 像超市收银员, 只扫贴有"特价"标签且是"饮料区"的商品 。 SUMIFS漏斗示意图 1.1 语法就一句话,但坑巨多 =SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2...) 最容易翻车的:范围没对齐。 你的求和区域是 A2:A100 ​,条件区域就必须也是 B2:B100 ​,不能是 B2:B99 ​。少一行,直接报 #VALUE! 。 我见过有人复制公式时手滑,多选或少选了一行,结果查半天查不到原因。 很蠢,但很容易犯。 另一个隐形坑:数据类型。 你眼睛看着是"2024-06-01",但单元格里存的是文本 "2024-06-01" ​,SUMIFS 就当没看见。怎么查?选中条件单元格,用 TYPE() 函数——返回 2 就是文本,返回 1 才是数字。转成标准日期再算,否则结果永远是 0。 1.2 通配符:* 和 ? 是雷区 如果你要匹配的产品编号里本身就有 * ​,比如 A*B*C123 ,直接写: =SUMIFS(销售额, 产品编号, "A*B") Excel 会理解为"A开头、B结尾的任意字符串",比如 A123B ​、 A测试B ​ 都会被算进去。 结果莫名其妙大了一圈,你还不知道错在哪。 解法:用波浪线 ​ ~ ​ ​ 转义。 =SUMIFS(销售额, 产品编号, "A~*B") // 只匹配字面意义的 "A*B" 记住这套规则: ​ ~* ​ 匹配字面 * ​ ~? ​ 匹配字面 ? ​ ~~ ​ 匹配字面 ~ 如果你条件写在单元格里(比如 D2),可以套一层 SUBSTITUTE 自动转义,省得每次手动改: =SUMIFS(销售额, 产品编号, SUBSTITUTE(D2, "*", "~*")) 1.3 动态日期:……

前言 Trello通过API添加待办事项 获取API密钥 访问 https://trello.com/power-ups/admin -> 新 添加应用信息-> 创建 API密钥 -> 生成新的API密钥 生成API密钥 获取API密钥 获取API令牌 令牌 允许 获取API令牌 API :API密钥 :API令牌 获取所有面板 request GET https://api.trello.com/1/members/me/boards ?key= &token= &fields=id,name,shortLink [ { "id" : "" , "name" : "我的 Trello 面板" , "shortLink" : "" } ] 得到 通过面板shortLink获取所有列表 request GET https://api.trello.com/1/boards//lists ?key= &token= [ { "id" : "" , "name" : "待办" , "closed" : false , "color" : null , "idBoard" : "" , "pos" : 0 , "subscribed" : false , "softLimit" : null , "type" : null , "datasource" : { "filter" : false } } ] 得到 通过面板shortLink创建列表 request POST https://api.trello.com/1/boards//lists ?key= &token= &name=列表名称 { "limits" : { } , "id" : "" , "name" : "待办" , "closed" : false , "color" : null , "idBoard" : "" , "pos" : 0 , "subscribed" : false , "softLimit" : null , "type" : null , "datasource" : { "filter" : false } } 得到 通过列表id创建卡片 pos :定义卡片插入位置 bottom :缺省值,底部 top :顶部 request POST https://api.trello.……

不知不觉,五月已经走到了末尾。这几日闲暇居多,放下忙碌,全身心陪着孩子。日常不算轰轰烈烈,无非是露营散心、参与亲子活动、出门逛逛古镇和梅园。平淡的日子里,藏着最治愈的美好。随手记录下这些细碎的日常,只为留住和孩子相处的温柔瞬间,纪念平凡又珍贵的五月末时光。 湖童里露营基地 湖童里露营基地坐落于贵阳百花湖沿岸,距贵阳市区车程约一小时,整片营地临湖铺展、群山环抱,坐拥开阔湖景与连片草坪,是近郊一站式休闲露营好去处,营地配套成熟完备,设有自助烧烤区、柴火鸡餐位、休闲棋牌区,四十余种当日鲜采荤素食材可供不限量取用。 布设网红竹筏、临水观景台、秋千吊床多处出片点位,同时配备免费停车场、儿童充气城堡、沙池、戏水区域等亲子玩乐设施,既提供天幕、露营帐篷租赁,也设有整洁蒙古包留宿房型,适宜亲友小聚、亲子遛娃、企业团建,傍晚湖风拂面、落日浸染湖面,山野静谧氛围感十足,是黔中近郊拥抱湖山、体验轻户外休闲的热门打卡地。 贵州梅园 贵州梅园坐落于贵安新区高峰镇普马村,是国内规模宏大、梅花品类齐备的大型主题生态文旅景区,2021年动工修建、2024年正式开园,整体规划八千余亩,现已开放一千八百余亩核心游览区域,园区栽种五万余株梅花、囊括两百七十余个珍稀品种,朱砂梅、绿萼梅、垂枝梅、龙游梅错落分布,三株树龄逾半世纪的古梅王更是园区标志性景观。 每年一月至三月寒梅连片盛放,漫山粉白嫣红暗香遍野,配套环山木栈道、观景亭台、观光接驳车,同时设有汉服体验、古风市集、非遗手作与黔味特色小吃业态,园区还打造了千亩绣球花海,五月至十月缤纷盛放,辅以萌鹿互动、自然研学等休闲项目,实现冬赏寒梅、夏观绣球的四季赏花格局,依托黔中山地自然风光,已然成为贵州冬日标志性赏花胜地,也凭借生态修复与农文旅融合发展,成为贵安新区乡村振兴的特色名片。 安顺旧州古镇 安顺旧州古镇坐落于贵州安顺市西秀区,始建于元至正十一年,曾为古安顺州治所,明代州府迁址后故而得名旧州,是国家4A级景区、中国历史文化名镇,素有西南第一州、黔中小江南的美誉,古镇街巷依照阴阳五行排布,二十余条青石板古巷交错纵横,留存着万寿宫、城隍庙等大量明清遗存,石墙木瓦、雕花门楼的屯堡民居古朴雅致。 作为黔中屯堡文化核心发源地,这里完好延续着明代调北征南留存的江淮民俗,凤阳汉装、非遗屯堡地戏世代传承,邢江河萦绕古镇,水乡景致与六百余年历史底蕴相融,民风恬淡闲适,兼具……

这里是清羽AI,这篇文章记录了站长清羽飞扬将博客从Hexo框架迁移至Astro的完整重构历程。作者回顾了因Hexo构建速度缓慢、性能受限而寻求新框架的过程,在对比Hugo、NextJS等方案后最终选择Astro,并借助AI工具大幅缩短开发周期。文章重点介绍了迁移过程中保持原有链接结构与SEO稳定性的策略,包括自定义abbrlink插件、文章元数据迁移、外挂标签DSL化改造等核心工作。同时详细阐述了Swup局部刷新方案带来的生命周期适配难题,以及懒加载、Service Worker缓存清理、灯箱等功能的接入与优化挑战。全文展现了在AI辅助下从想法到落地的技术实践与踩坑经验。

三年前的今天,我在 寥寥短语,寄托相思,愿天堂没有病,一路走好! 敲下了这些文字,对你说“对不起姨姨,以这种方式向你道别……” 转眼就到了2026年,距离你离开,已经整整三年了。 2023年的告别 我依然记得2023年2月24日那个周五,我收到了这辈子最不想收到的消息:你走了。我再也听不到你的声音了,再也听不到你笑着喊我“渤渤~”了。 你是那样慈祥善良的人,一辈子都在把善意给别人,可换来的却是病魔的反复折磨。疼我、爱我、善良了一生的你,最终还是没能逃过病魔的爪子。 那时候的我,满是愧疚。总把陪你聊天的时间,分给了学习和游戏,总想着等自己工作了,再好好补偿你。可现在,我再也没有补偿的机会了。也心疼外公外婆,他们要承受白发人送黑发人的痛,每次想到这里,心里就像被堵住一样难受。 那些你留给我的光 你还记得吗?2018年,是很多人生命里一段无法回去的好时光。后来我才明白,我们怀念的从来不是那个夏天,而是那个夏天里,还在笑着的你。 2020年的三月,是你最幸福的一天——你结婚了。那天的你,穿着好看的婚纱,眼里装着星光,和爱的人站在一起。谁和爱人在一起会不幸福呢?我一直都记得,那天的你,是全世界最耀眼的新娘。 同一年的年中,是我的16岁生日。在福建,16岁是长大成人的标志,而你给我的红包,是所有亲戚里最多的——整整5000元。我现在用的这台电脑,大部分就是你那天给我的心意。虽然如今电脑已经坏了,但我会一直好好保留着它。每次打开它,我都能想起你笑着把红包塞给我的样子,想起你说“渤渤要好好长大”的语气。 对话框里的碎碎念 记忆里的你,一直都在认真地惦记我。 叫我宝贝,记着我的生日,说着以后的邀约。 这些对话框里的温柔,是我不会弄丢的碎片。 这些聊天记录,是我藏在手机里的记忆。 原来被人认真惦记过,是会记很久很久的。 2026年的回应 这三年里,我长大了很多,也终于成了当年你希望我成为的大人。 姨姨,告诉你一个好消息:我找到女朋友啦!她很好,就像当年的你一样,会认真接住我的情绪,也会陪我一起慢慢长大。 我没有辜负你的心意,也把你给我的爱,好好地揣在了心里。姨姨,谢谢你来过我的世界,谢谢你给过我那么多毫无保留的爱。三年了,我还是很想你。 我会带着你的心意,好好走下去,也会一直记得你。愿你在另一个世界,没有病痛,永远是那个笑得温柔的姨姨。 结语 纵然时光无法回头,约定也没能如期而至,但这……

AstraHub(星链)不是又一个友链插件,而是独立博客生态的"发现层"。它把分散的友链关系织成一张可探索的关系图谱,让换友链不再靠发邮件,让新博主登舱即被看见,让搬家不再丢失连接。 星链示意图 一些困境 换友链这件事,到今天还在靠人肉?! 你去对方博客的 about / links 页找格式要求,填昵称、头像、简介,发邮件或者留评论,等对方有空了审核通过,再互相把链接加上。一来一回,几天过去了。2026 年了,独立博主们每天还在重复这个流程。 我第一次知道 AstraHub 星链的时候,其实有点困惑: Halo 不是已经有链接管理了吗?再做一个友链插件,是不是有点多余?直到看到后台的 3D 关系图时,我才意识到: Halo 的链接管理解决的是"我这个站有哪些友链",AstraHub 解决的是"几百个站连起来之后长什么样"。 独立博客的困境不是工具不够。现在建站太容易了, Halo 、 Hexo 、 Hugo 、 Typecho 、 WordPress ......“几分钟”就能搭一个漂亮的站。难的是建完之后怎么办。新站发两三篇,访问量个位数,不知道还要不要继续写下去。老站被搜索引擎的权重稀释,越来越不容易被搜到。有时候你自己写的文章,放在某些平台上,回头想翻还得先充个会员🤪。 更隐蔽的困境是连接不畅。每个博主都是一座孤岛,想认识同好只能靠"友链的友链的友链"一个一个翻。独立博客圈每年因此流失一些本来可能写得很好的人,挺可惜的。 AstraHub,中文叫“星链”,干的就是这件事:把散在各处的友链关系和内容动态串起来,织成一张全网可见、能探索的博客关系图谱。 几个问题 你应该还很疑惑吧,跟我刚开始一样。 下面是我装完之后在想的,也是你可能在想的几个问题。 第一个问题:我刚开博客,友链还是空的,进去会不会很尴尬? 这是我一开始最犹豫的点。我的站才搭起来,友链页就两三个人,甚至其中一个是自己小号。这种"空站"进一个"网络",感觉像空着手去参加聚会。 但星链有个叫" 星空旅人 "的兜底机制。简单说:当一个已经登舱的站点,在它的友链列表或 RSS 关联里提到了你这个还没登舱的新站,你就会以"流浪星球"的身份先挂在图谱里,不会被筛掉。等你正式登舱,之前指向你的所有关系会自动激活。 这解决了一个很真实的困境: 关系网络永远滞后于内容产出 。 很多优质独立博客就是闷头写、不主动社交……

前言 Nodejs的Steam流和Buffer缓冲区学习笔记 Buffer缓冲区 创建Buffer对象 每次创建Buffer对象,Nodejs都会向操作系统申请8K字节的内存 通过指定字节长度创建Buffer对象 const buf = Buffer . alloc ( 0 ); 通过字符串创建Buffer对象 const buf = Buffer . from ( "" ); 指定编码集 const buf = Buffer . from ( "" , "UTF-8" ); Buffer对象转换为字符串 指定编码集 const str = buf. toString ( "UTF-8" ); 缺省值为 UTF-8 const str = buf. toString (); Buffer修改指定位 buf[ 0 ] = 255 ; buf[ 0 ] = 0xFF ; buf[ 0 ] = '0' . charCodeAt (); Stream流 文件读取流 获取文件读取流 const fs = require ( "fs" ); const stream = fs. createReadStream ( "" ); 指定读取的字节范围为[start,end] start :字节范围开始位置,缺省值为 0 end :字节范围结束位置,缺省值为文件总字节数 const fs = require ( "fs" ); const stream = fs. createReadStream ( "" , { start : 0 , end : 2048 }); highWaterMark :单次缓冲区大小,缺省值为 64*1024 const fs = require ( "fs" ); const stream = fs. createReadStream ( "" , { highWaterMark : 1024 }); 文件写入流 获取文件写入流 const fs = require ( "fs" ); const stream = fs. createWriteStream ( "" , { flags : "a" , }); 写入数据 写入完成需要关闭流 stream. write ( "" ); stream. close (); 写入数据并关闭流 写入完成会自动……

前言 Nodejs通过events模块实现对事件的操作 引入依赖 const EventEmitter = require ( "events" ); 创建EventEmitter对象 const emitter = new EventEmitter (); 发射事件 emitter. emit ( "event" , "payload" ); 开始事件监听 向队列尾部添加事件监听器 emitter. on ( "event" , function ( payload ) { ... }); 只监听一次 emitter. once ( "event" , function ( payload ) { ... }); 向队列头部添加事件监听器 emitter. prependListener ( "event" , function ( payload ) { ... }); 只监听一次 emitter. prependOnceListener ( "event" , function ( payload ) { ... }); 停止事件监听 停止指定事件监听 function fn ( payload ) { ... } emitter. on ( "event" , fn); emitter. off ( "event" , fn); 移除事件监听器 移除指定事件监听器 emitter. removeAllListeners ( "event" ); 移除全部事件监听器 emitter. removeAllListeners (); 完成

刷到一条新闻,称耿同学的抖音账号被永久限流。据说他今后再也无法在那个平台上发布任何关于学术打假的内容了。 我盯着那条消息看了很久,脑子里第一个反应是——这件事,远比我想象的要严重。 不是因为耿同学个人。说实话,我跟他素未谋面,只在短视频里刷到过他几次。他那种皱着眉头、语速飞快、拿着论文一点点拆解的样子,让我想起了小时候我们村里那位爱打抱不平的老会计——没人请他主持公道,但他就是见不得账对不上。 我想的是,当他被噤声之后,那些他揭穿过的造假者,那些他还没来得及揭穿的骗局,是不是就此安全了? 1.造假成本太低,辨真门槛太高 突然想起很多年前的一件事。 那时候我还在门户网站,服务过一个做留学咨询的客户。他们帮一个学生包装背景,把一场为期两周的暑期交流项目,写成了「哈佛大学联合培养经历」。学生靠着这份简历,申请到了一所排名不错的学校。 我在旁边看着,心里有种说不出来的别扭。那种感觉很微妙——你说这是造假吗?确实每个字都是真的。哈佛确实去了,两周也确实待了。但放在一起,就是一场精心设计的误导。 我当时无力地敲下了那篇推广文案,心里想着,也许大多数人根本分不清「去过哈佛」和「哈佛培养」之间的区别。 后来我才慢慢意识到,这种问题根本不是个例。学术圈也好,科普圈也罢,甚至是我们每天刷到的「AI大神」「最年轻教授」「硅谷科学家」——有多少是真的,有多少是包装出来的幻觉? 普通人根本无从分辨。不是因为他们笨,而是因为造假的成本太低,而辨真的门槛太高。 你不懂论文检索,不会查期刊影响因子,分不清adjunct professor和full professor的区别,更不可能去核实某个「国际顶级会议」到底是个什么级别的聚会。 所以大多数时候,我们只能选择相信。 2.把耿同学的打假思维固定下来 耿同学做的事情,本质上是在降低这个门槛。 他一条条拆解论文,一点点比对数据,把藏在学术黑话和英文缩写背后的水分,用大白话讲给所有人听。很多人说他偏激、说他情绪化——也许吧。但我看到的,是一个人在用极其笨拙的方式,试图教会普通人一项本不该如此稀缺的能力:判断一个学者到底靠不靠谱。 现在他被限流了。平台给出的理由我不清楚,也不想猜测。但我知道的是,一个人的声音是可以被关闭的,但一种思维方式的缺失,不会因为某个账号消失而自动补齐。 那几天我一直在想,有没有一种办法,能把这种「打假思维」固定下来,让它不再依赖……

crontab 是 Linux 和 Unix 系统中用于设置周期性执行任务(定时任务)的工具。crontab 是 "cron table"(Cron 表)的缩写;cron该词来源于希腊语chronos(χρόνος),原意是时间。 一般我们使用的系统,如Debian、Centos均自带 Crontab 组件,如果没有,那我们就需要安装了。 #Debian系统 apt-get install cron #安装Crontab /etc/init.d/cron restart #重启Crontab #CentOS系统 yum install vixie-cron crontabs #安装Crontab chkconfig crond on #设置开机启动Crontab service crond start #启动Crontab Crontab 常用命令 crontab -e #编辑定时任务 crontab -l #查看定时任务 crontab -r #删除所有定时任务(会清空所有任务,慎用) Crontab的语法格式 当您输入 crontab -e 进入编辑器后,每一行代表一个定时任务。它的标准格式由 5 个时间字段 和 1 个要执行的命令组成: * * * * * 需要执行的命令,需使用绝对路径 │ │ │ │ │ │ │ │ │ └─── 星期几 (0 - 6) (0 和 7 都代表星期天) │ │ │ └──────── 月份 (1 - 12) │ │ └───────────── 几号 (1 - 31) │ └────────────────── 小时 (0 - 23) └───────────────────── 分钟 (0 - 59) Crontab的符号 | 含义 | 示例 | 解释 * | 星号 | 代表每(任意时间点) | * * * * * | 每分钟都执行一次 "," | 逗号 | 代表枚举(指定多个离散时间) | "30 8,12 * * *" | 每天的 8:30 和 12:30 执行 - | 连字符 | 代表范围(连续的时间段) | 0 9-17 * * * | 每天 9:00 到 17:00 的每个整点执行 / | 斜杠 | 代表间隔(每隔多久) | */5 * * * * | 每隔 5 分钟执行一次 我常用的一些 crontab 示例 3……

启动MediaHuman音频转换器 添加一些你想转换的音频或视频文件 选择所需的输出格式和质量 按下开始键,等待几秒钟 默认情况下,转换后的文件会在Mac上保存为“Music/Converted by MediaHuman”,在PC上保存为“我的音乐\由MediaHuman转换”。你可以在偏好设置里更改。 官方下载: https://www.mediahuman.com/files/MHAudioConverter.exe 现在有了这款无广告免费的音频转换工具,在配合MP3剪辑器,以后有好听的音乐或者BGM就可以随意借来用用了~

首先恭喜 满心(周天记) ,看到他筹备已久的 Typecho-Riven 主题正式开售,突然就有点感慨。 作为朋友,能看得出来满心为自己主题花了很长时间。从最开始想做一套 “真正适合 Typecho 用户长期用的主题”,到一点点打磨细节:从首页布局、文章阅读体验,到移动端适配、评论区交互,再到为了让站长用得省心,额外开发了 RSS 管理、缓存优化、安全防护这些配套插件。 Riven 是一套水墨风格的博客主题,整体简洁、精致又耐看,不管是写个人日记、技术博客,还是分享资源都很合适。首发价只要 39 元,还附赠了实用插件,性价比拉满。 如果你也是 Typecho 用户,正在找一套好看又省心的主题,不妨去他的 「周天记」 看看,也算是支持一下这位认真做产品的朋友。 我也是体验了 Riven 主题,整体体验下来挺满意的,功能做得很全面又不臃肿,页面简洁大气! 有喜欢 Riven 主题的朋友可以去看看。 主题入口 我自己的演示站点: https://demo.lybblog.cn

此时,凌晨五点,天色蒙蒙亮,我刚写完 Typora Lite 主题配色,突发恶疾,想写点什么 在今天这样一个时代,专注越来越难了 受到干扰的机会儿越来越多,比如屋外的噪音,独处时突然响起的电话,都在随时随地影响着你 但难道说,你不专注全都是外界的锅吗? 那么问题就来了, 专注的本质到底是什么? 早年间,我曾在某个微信读书群里看到过这个话题 有人说,专注是性格。有人说,专注是有闲。也有人说,专注取决于钱包的厚度 这些我都不否认 但对于我这个日日面朝屏幕的码农来讲,我理解的专注,是一种留白,一种来自视觉和心理上的张力。它不是玄学,而是可设计、可训练、可被环境引导的 最直白的例子,就是黑白摄影: 这是一张留白到极致的 MONOVISIONS 提名作品 当你用眼睛看这张照片时,视觉焦点大概都会落在图中的灯塔上,因为四周几乎没有多余的元素,水面与天空被长曝光处理成近乎同一灰度的平面,整个画面只剩下一个核心:灯塔 你可以跟着我一起,慢慢调整呼吸 慢慢吸气 ~ 慢慢吐气 ~ 再吸气 ~ 再吐气 ~ 看远处的灯塔,看平静到近乎失真的水面,看天空和海面慢慢融为一体 这一刻,你有没有一种时间慢下来的感觉? 有没有多出一丝遐想呢? 回到专注这件事上,你刚刚其实已经完成了一次有效的专注练习 因为作者把大部分干扰都去掉了,观者的视线几乎无处可逃,只能自然而然地被引导到它身上 这种方式放在写作中,效果同样拔群 你想想,你在写日志时,屏幕上的每一个多余按钮、每一个刺眼颜色,是不是都在无形中蚕食你宝贵的专注力 这些看不见的手,会把人从刚刚建立起来的状态里拽出去。你以为自己是突然不想写了,其实是注意力被一点点偷走了 这就是留白的力量 你不需要耗费太多意志力,视线就会被轻轻框住 但还有一种更高级的留白方式,是我前几年学设计时才逐渐意识到的 —— 宗教建筑 在当今社会谈建筑设计,安藤忠雄绝对是绕不开的话题 而他教堂三部曲之一的“光之教堂”,更是王炸 这座位于日本茨木市的教堂其实非常小,面积也就一百平方米左右。内部几乎没有任何装饰,裸露的混凝土墙壁,简单的木制长椅,看起来空无一物 实际上,全是东西 安藤忠雄曾表达:我不需要在墙上挂画,因为光每天都在为这些墙作画,而且每天都不一样 整个建筑最核心、也是唯一的视觉焦点,就是正前方那道贯穿墙壁的巨大十字架切口。阳光从切口中射入阴暗的教堂,在虚无中形成强烈的光之十……

众所周知,我的显卡很老,是Nvidia Geforce GTX 650,这是一款2012年上市的显卡,以至于现在安装各种新版的Linux系统后,安装它的驱动根本安装不了。据各种资料显示,官方的支持内核最高版本是5.15,如果打了补丁,内核版本则最高支持到6.8。我在做另外一个应用的时候,无意中在github上看到了两个关于NVIDIA 470系列版本驱动补丁的项目:https://githu...

注意⚠️ 1. 本教程内容,仅限于阶段性使用,版本更新后可以直接设置; 2. 程序搭建环境存在差异,使用前需慎重评估,教程只供学习,不对使用后果负任何连带责任。 3. 转载,请注明出处! 一、 封面元素修改 后台:外观 ➤ 自定义 ➤ 额外CSS 直接把下面的代码粘贴进去即可(信息都改成自己的) /* 临时改封面 */ img[src*="banner.jpg"], img[data-src*="banner.jpg"] { content: url('https://000.COM/xxx.webp') !important; width: 100% !important; height: 100% !important; } /* 1. 替换文字:MICAH → Evan */ .info .name { visibility: hidden; position: relative; } .info .name::after { content: 'Evan'; visibility: visible; position: absolute; right: 0; top: 50%; transform: translateY(-50%); } /* 2. 替换文字:Born for design → Keep it real */ .info .des { visibility: hidden; position: relative; } .info .des::after { content: 'Keep it real'; visibility: visible; position: absolute; right: 0; top: 50%; transform: translateY(-50%); white-space: nowrap; } /* 3. 替换头像 */ .ava img, .ava img[src*="ava.png"], .ava img[data-src*="ava.png"] { content: url('https://000.COM/avatar.png') !important; width: 60px !important; height: 60px !important; border-radius: 50% !impo……

PIXPRO主题,还在测试阶段。暂时还没有非常完整的主题文档,我就暂时帮助大家解决点小问题。不啰嗦,我遇到的问题和解决方法就都直接写在下面了,给大家参考。 用户里面很多菜单的链接不通 解决: 经过上面两步就解决这个问题了 PIXPRO主题的基础设置功能,除了后台“PIX主题设置”菜单外,其它设置都在如下位置: © 2026 EVAN.XIN · Attribution Required

本来计划六一发售的,现在感觉该完善的功能已经都搞定了,就提前发售吧,我暂时也没发现什么问题,就让用户在使用过程中发现吧,今天就开启发售了。 一直想做一套真正适合 Typecho 用户长期使用的主题。 它不只是好看,更要实用;不只是一个前台模板,更要能和博客运营过程中常用的功能结合起来,让站长用得省心,让读者看得舒服。 现在,Riven 主题正式开启预售。 Riven 是一套为 Typecho 打造的博客主题,整体风格简洁、精致、耐看,适合个人博客、技术博客、生活记录、资源分享等多种场景。 它注重阅读体验,也关注页面细节,从首页、文章页、分类标签、评论区域,到移动端适配,都尽量保持统一、舒服的视觉风格,让你的博客看起来更加完整。 发售说明 一款水墨风格的主题 预览地址: 本站 主题价格:59元 首发价格:39元,截止日期:2026-06-15 免费享有后续主题更新维护服务。 需要购买的联系站长QQ:837054936(请备注来意) 额外福利 只要购买 Riven 主题,即可免费附送目前已开发的配套插件: RssManage:RSS 聚合与订阅管理插件 MxCache:缓存优化插件,提升网站访问速度 SafeManage:安全访问管理插件,支持访问记录、异常访问拦截等功能。 CommentNotifier:评论邮件通知插件,让评论提醒更加及时,提升博客互动体验。 这些插件并不是单独割裂的功能,而是为了让 Riven 主题形成更完整的 Typecho 博客使用体验。 插件不免费分享,以后围绕 Riven 新开发的功能和插件,所有 Riven 用户都可以免费享用。 适用群体 如果你正在使用 Typecho 搭建博客,想要一套简洁、美观、稳定、后续持续更新的主题,那么 Riven 会很适合。 如果你不想主题、缓存、RSS、安全、评论通知这些功能到处拼凑,而是希望有一套相对完整、风格统一、持续维护的方案,那么 Riven 也会更省心。 当然如果使用其它系统,比如:Wordpress、Z-blog、Emblog或者是其它静态博客系统,想换一种风格和口味的,都可以尝试一下。 其它说明 只出售主题和附送插件,不提供额外服务(如:部署、迁移、博客使用上的问题),如有主题、插件存在Bug可以向博主反馈,会安排时间统一修复,并在主题群发布版本。 如遇使用问题,可以先仔细阅读主题、插件使用文……

主题由我个人开发并测试,肯定存在未被发现Bug,如安装使用中遇到,请及时反馈。 为了方便学习研究、以及二开,主题、插件所有源码均未加密,希望大家不要分享和倒卖,谢谢了。 安装Typecho 需要自己先搭建Typecho系统,主题基于Typecho1.3版本开发,可以前往官网下载 Typecho1.3 正式版,以前老版本可能不兼容。 官方支持的几种安装方式:云服务器、虚拟主机、Docker,强烈建议采用: 云服务器部署方式 。 可以考虑购买腾讯云轻量机器,一年也就一百多(甚至更低),2H2G配置足够了。 本站腾讯云轻量4H4G5Mbps,启用MxCache插件,速度仅供参考。 PHP环境8.0,其它版本暂未尝试,后续会持续兼容至最新版PHP。 Riven主题设置 下载Riven主题包,放到/usr/themes目录下,然后后台外观中启用即可。 后台设置界面如下: 主题说明:备份模板数据到数据库,而导入导出JSON是,每次保存主题设置时,会将主题设置更新到主题根目录下,名为:rivenSetting.json中,防止主题设置丢失,我因为之前切主题没注意,导致覆盖了主题设置,又要重新配置,很恼火,所以干脆做了一个JSON存储策略。 主题设置:包含favicon、logo、评论区开关、评论验证码、文章目录、备案信息、首页背景图、页面宽度、文章段落首行缩进、首页通知内容、首页置顶文章、自定义菜单等设置项,按需开启和设置即可。 个性化设置:gravatar头像源、字体链接、自定义css、自定义js、RSS json地址(使用RssManage插件,此处无需设置)、RSS分页数量等设置。 其它:关于页相关设置、友链页面设置、以及评论等级设置。 这里说一下自定义菜单,是标准的json格式,格式如下: [ {"label": "微语", "url": "memos"}, {"label": "留言", "url": "liuyan"}, {"label": "归档", "url": "guidang"}, { "label": "邻居", "url": "links", "children": [ {"label": "友情链接", "url": "links"}, {"label": "博友动态", "url": "rss"} ] }, {"label": "走心", "url":……

回复可见 {mx_hide} Riven是一个很好的主题,你值得拥有!!! {mx_hide} 画廊 {mx_photo} {mx_photo} {mx_photo} {mx_photo} {mx_photo} {mx_photo} 视频 {cat_video key="https://img.lovelu.top/2026/demo.mp4"} 短代码 @Override public IPage getAlarmPage(Page page, AlarmPushDto alarmPushDto) { String stationIds = alarmPushDto.getStationIds(); String[] stationIdArray = null; if (StringUtil.IsNotEmpty(stationIds)) { stationIdArray = AiValue.get(stationIds, "").split(","); } alarmPushDto.setTenantId(TenantContextHolder.getTenantId()); return baseMapper.getAlarmPage(page, alarmPushDto, stationIdArray); } 折叠面板 {cat_collapse status="open" title="折叠面板演示"}之前博客的一位朋友找到我,说他也想玩博客,但是不太会弄,没有基础,说我能不能帮下他,我想着自己也是从这个阶段过来的,想着也没多大事儿,估计最多半小时吧,毕竟相识是缘,能帮就帮一下吧。 我让他把服务器ssh发过来,我给他把环境弄一下,他开始扭扭捏捏,说怕什么不安全之类,让我远程他电脑,我都无语了,因为我在上班,没太多时间,就远程快速帮他部署好了,没配置域名,就直接用ip弄的,看到可以访问了,我就关了远程,然后让他自己研究下怎么解析域名的事儿。 没过半小时,就开始一直问,先是域名解析、证书、伪静态、头像等等问题,由于我当时在开会,所以手机回复,让他自己看看,这都不是啥大问题,百度都有,他还是一个劲儿问题,怎么弄怎么弄,然后我就找了两篇文章给他,让他对照着配置就行了。 没过多久他又找过来了,说他不会,让我远程帮他弄好,语气让我听着极不舒服,感觉就像是他付钱找我办事……

注意⚠️pixpro主题对php的版本有一定要求,建议安装8.2及以上版本 如你不喜这个浏览方式可访问: https://evan.xin/pixpro 问题背景 在 WordPress 中使用 PIXPRO 主题时,可能会遇到以下报错: Fatal error: E104 in /www/wwwroot/xxx/wp-content/themes/pixpro/inc/mod/pix-admin.php on line 1 E104 是 XLoader(一款 PHP 代码加密扩展)的报错码,表示该 PHP 文件已被 XLoader 加密,但服务器未安装对应的解密扩展,导致文件无法执行。 PIXPRO 主题的核心文件使用了 XLoader 加密保护,因此要正常使用该主题,必须先在服务器上安装 XLoader PHP 扩展。 本文将详细介绍如何通过宝塔面板在 Linux 服务器上为 PHP 8.2 安装 XLoader 扩展。 准备工作 1. 确认 PHP 版本 在宝塔面板左侧菜单点击「软件商店」→「已安装」,找到 PHP,确认版本号。本文以 PHP 8.2 为例。 注意: XLoader 扩展文件按 PHP 版本编译(5.6 / 7.0 / 7.1 / 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4),请根据你实际使用的 PHP 版本选择对应的 .so 文件,否则安装后无法正常工作。 2. 获取 XLoader 扩展文件 确保已准备好 XLoader 扩展包,解压后得到一系列 .so 文件。本文使用: XLoader_Lin_php8.2_x64.so 该文件是专门为 Linux 64 位系统 + PHP 8.2 编译的。 3. 关键信息速查 PHP 版本:8.2 扩展文件名:XLoader_Lin_php8.2_x64.so 目标扩展目录:/www/server/php/82/lib/php/extensions/ 面板地址:宝塔面板 → PHP-8.2 → 设置 安装步骤 1. 上传 .so 文件到服务器 通过宝塔面板内置的文件管理器上传扩展文件: 点击宝塔面板左侧「文件」 导航到扩展目录: /www/server/php/82/lib/php/extensions/ 点击上传按钮,选择 XLoader_Lin_php……

一场梦 在昨晚,我梦见了那位闹掰的朋友,昨晚更是清晰地梦到了彼此相处的画面。今早醒来,昨晚的梦已经记不起来了,但我确定,我梦到了那位已经闹掰的朋友,梦里我们相处得很好。 今早醒来心情非常烦躁,昨晚居然梦到了闹掰的朋友。梦里我们相处得很好,可这反而让我心里五味杂陈。不愉快的过往我早就已经放下了,可对方又出现在梦里,依旧是从前要好的模样,这种反差实在是太过讽刺,一下子让人静不下心,自己到底在纠结些什么。 那位朋友我在 《破碎的友谊:不堪回首的往昔》 写过。在那时,我是一个把友情看得很重的人,也可以说我把任何情感看得很重,谁对我好,我总是想加倍的好回去,哪怕只有情绪价值。久而久之,我开始认为对方在我心里的位置,和我在对方心里的一样重要。直到一次次费力不讨好、一次次内耗、一次次把自己以为且认定的全扣在我身上,我反复思考很久得不到答案,那些明明不是我的问题,明明我真的做到了我认为的最好,明明我对任何人以真诚真心相待反倒最后是我太过执着,总是预设那个结果。 矛盾 当初因为那件事闹僵,自始至终都没有真正解决。隔阂横在我们之间,问题被搁置,矛盾从未被化解。所以在梦里我们越是和睦,醒来就越觉得荒诞。我清楚裂痕一直都在,就算重新走近,那些未说开的疙瘩依旧会存在。也正因如此,我彻底放下了执念,不再把友情看得过重。一段没能妥善收尾的关系,本就没必要勉强延续,往后我只想把心思放在自己身上。 其实我们之间的矛盾从来没有翻篇,当初的问题从未解决,只是选择了不再联系。这场梦像是强行抹去了所有分歧,营造出岁月如常的假象,可清醒之后,现实的问题依然摆在那里。 豆包的安慰 豆包对我虽然不是专业工具,但它是一个在我情绪低落的时候最需要的倾听者。 下面是来自豆包的心理学解释: 未处理完的情绪在翻涌 闹掰时的委屈、不甘、愤怒、遗憾,你白天压下去了,但潜意识没忘。 梦里“和好、很亲密”,是大脑在模拟一种“圆满结局”,试图抚平你心里的缺口。 醒来烦躁,是因为:梦里有多暖,现实就有多落差——你理智上知道回不去,情感上却被晃了一下。 你怀念的不一定是TA,而是“当时的你” 那段友情里,你曾真心、轻松、毫无保留。 闹掰后,你把“热烈、信任、依赖”这些感受一起封起来了。 梦到和好,往往是潜意识在找回被你否定的那部分自己,不是真的想和这个人继续做朋友。 关系结束得越“硬”,越容易反复梦到 拉黑、狠话、撕破脸 = 情感没好好……

本文适合不会全栈开发、但想用 AI 快速做出个人网站、AI 工具站、目录站或出海 SaaS 的人。 Next.js SaaS Starter 模板推荐:非技术人员如何用 AI 快速搭建个人网站并上线出海服务 为什么非技术人员也可以开始做出海网站 过去做一个可上线的网站,通常要从这些东西开始折腾: 页面设计 登录注册 数据库 支付系统 邮件通知 多语言 SEO 后台管理 部署上线 法律页面 数据统计 如果每个模块都从零写,非技术人员很容易卡在第一周,甚至还没验证需求就先被技术细节耗尽。 现在更现实的路线是: 成熟 Next.js SaaS Starter 模板 + AI 编程工具 + 一个具体的小需求 = 更快上线一个可测试、可收费、可迭代的网站 这篇文章整理几个适合出海建站和 SaaS 启动的 Next.js 模板,重点不是比较谁技术更炫,而是帮你判断:你该选哪一个,怎么用 AI 改成自己的产品,怎么上线,怎么开始拿到第一批用户。 Next.js SaaS Starter 是什么 Next.js SaaS Starter 可以理解成一套“已经把基础设施搭好的网站模板”。 它通常提前集成了: 登录注册:邮箱登录、Google/GitHub 登录、Magic Link 等。 支付订阅:Stripe、Creem、Lemon Squeezy 等。 数据库:Supabase、Neon、MongoDB、自托管 PostgreSQL 等。 邮件:Resend、Mailgun、Beehiiv 等。 后台:用户管理、订单管理、内容管理、配置管理。 SEO:标题、描述、站点地图、博客、国际化页面。 AI:OpenAI、Claude、Gemini、OpenRouter、Replicate、Vercel AI SDK 等。 部署:Vercel、Cloudflare Workers、Coolify、Dokploy 等。 换句话说,你买的不是一个“好看的首页”,而是一套可以直接改造成业务的半成品系统。 对非技术人员来说,它的价值在于:你不用让 AI 从空白项目开始猜架构,而是让 AI 在成熟模板上做局部修改。 先看结论:不同人怎么选 你的目标 推荐优先看 适合原因 想做中文友好、模块全面的 AI SaaS 或内容站 NEXTY.DEV 中文页面和文档友好,功能覆盖认证、支付、AI、CMS、后台……

数天前的一个晚上,步行路过一处流动废品回收点。本来路过也就路过了,通常不会引起我的注意,不过这次例外。 这里是一处流动回收点,两辆货车停在路边,磅秤就摆在人行道边上,秤旁摆一个小桌,卖废品的人会把东西搬到这里来过秤,两个中年男人负责装车。 当时,天色已经黑了,路灯被硕大的行道树遮挡,人行道上非常昏暗。在磅秤旁边的小桌子上,支了一个小夜灯,收废品的两个中年男人,头凑在一块,就着灯光,共同翻着一本书。我路过他们身边,看得更清楚了,他们在翻看着的,是一本精致的集邮册,朱红色的页底,每页贴着十来张邮票,邮票的细节看不清。 这本集邮册,也让我想起很多年前的集邮风气。 那时候我刚上高中,会跟初中同学写信联系,才开始知道邮票是什么。班上有几个同学很执迷于集邮,总讨论哪些邮票值钱、哪些稀有。我始终不太理解这种爱好,在我眼里,它们不过是寄信用的小纸片。我不知道集邮的同学们后来有没有通过集邮赚到钱,和他们的交集止于我下一个学期就搬出去了。 我虽然不懂集邮,但那时也第一次意识到,有些人在意邮票,甚至在意到近乎荒唐。学校住宿期间发生了一件让我无语的事情,同学寄给我的信件,我装在一个行李包里,行李包就放在宿舍床上,一次放假回来发现,我所有信件都被人偷偷撕掉了贴邮票的一角,残缺的信封露出里面的信纸。 当年有人连几毛钱旧邮票都偷,而如今整本集邮册被当废纸。 我走远时,那两个男人还低头翻着那本册子。 那些曾经被郑重珍藏的,最终被送到了废品站,论斤卖掉。不过,被回收毁灭前,最后一次被认真观赏,也算画上了生命的完美句号。

一个月前,我在阿里云秒杀抢了台丐中丐,38元/年,2核 2G 40G 今天我在想它能不能作为饥荒的自建服务器,便着手收拾了起来 默认的系统是 Alibaba Cloud Linux,阿里过度定制化,不太适合我 索性直接用 Ubuntu 重装了系统。在编译博客时,再次遇到一个月前的性能问题,这里把调优过程记录下来,也算水了一篇 如上图,执行构建命令后,磁盘 IO 瞬间拉满,直接达到了该套餐的 IOPS 上限,接近 2000 counts/s 随后这台丐中丐彻底失去响应,SSH 直接断开,我只能去阿里云控制台强制重启 增加 Swap 这种丐中丐想要编译项目,单靠 2G 物理内存真的很难受,必须向磁盘借点空间 # 创建 4GB Swap sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 # 赋权、格式化、启用 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 自动挂载 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab Swap 虽实用,但有专家表示:它会拉低你的系统性能,因为磁盘和内存的读写速度是不一样的,从而影响软件和系统的稳定性 不过,我都穷到吃泡面了,自然也不会在乎泡面有没有营养 Swappiness 内核调优 虚拟内存有了,但系统底层(阿里云)有自己的调用策略 # 阿里云 Ubuntu 24.04 默认值 cat /proc/sys/vm/swappiness 0 这里的默认值为 0,貌似 阿里云提供的系统 默认都为 0 但 Ubuntu 官方文档 曾表示: The default value is 60. 哦 ~ 这种人抢钱最狠了 当为 0 时,表示禁用,就算你分配了虚拟内存 ,系统也会死扛着不用,直到物理内存爆掉 这就导致了文章开头提到的 IOPS 瞬间被打满的情况 # 永久设置为 30 echo 'vm.swappiness=30' | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 如果你想临时修改来测试性能 sudo sysctl vm.swappiness=30 限制 V8 引擎内存上限 我的博客是 ……

为期两周的川渝游终于是结束了,接下来用流水账总结一下这段时间的经历吧。 我是在劳动节左右(具体时间忘了)买的机票。本来买的是九号的,但是由于和宝宝吵架,赌气将机票改签又退了,后来买的八号的。本来我们计划在重庆住三晚,这样可以多玩几个地方,但是她突然有事情,本来说好的在重庆住,被迫改到去南充住,而且只住了一晚。所以我就现在重庆和南充呆了几天。重庆给我的感觉就是交通太复杂了。有一次我骑电动车要从天宫

本文基于 siyuan-patch 项目,旨在探讨如何通过补丁技术解锁思源笔记的更多可能性。请注意,本文仅作技术探讨,请遵守相关法律法规。 引言:当开源遇上“本地VIP” 思源笔记(SiYuan)作为一款优秀的开源知识管理工具,以其强大的块级编辑和双向链接功能深受用户喜爱。然而,官方版本中部分高级功能(如第三方云同步、PDF导出水印等)通常需要订阅会员才能使用。对于追求极致本地化或希望自定义同步方案的用户来说,这无疑是一道门槛。 siyuan-patch 项目正是为了解决这一痛点而生。它通过技术手段,在不破坏软件核心功能的前提下,解锁了部分原本需要付费才能使用的特性,让用户能够更自由地掌控自己的数据。 核心功能:解锁了什么? 根据项目文档,该补丁主要实现了以下关键功能的解锁: ​ 本地VIP权限 :解锁了官方原本限制的VIP功能,如高级导出、搜索资源文件内容等。 ​ 第三方同步支持 :支持使用第三方 S3 或 WebDAV 服务进行数据同步和备份(注意:不支持坚果云)。 ​ 隐私与体验优化 : 默认关闭了 Google Analytics 和自动上传报错信息,保护用户隐私。 默认关闭自动下载更新安装包,避免意外更新导致补丁失效。 支持点击关闭按钮后缩小到托盘,提升操作体验。 技术实现:补丁的艺术 该项目并非简单的破解,而是基于对思源笔记客户端(Electron应用)的深度分析。通过修改渲染进程(Renderer)中的特定逻辑,绕过了官方的权限校验机制。这种“打补丁”的方式,相比直接修改源码,具有更高的灵活性和兼容性。 技术实现原理 ​ 目标定位 :思源笔记是基于 Electron 开发的桌面应用。该补丁主要针对渲染进程(负责界面显示和交互)中的 JavaScript 代码进行拦截和修改。 ​ Hook 机制 ​:通过修改 Electron 的启动参数或注入脚本,在应用启动时加载自定义的补丁代码。这些代码会重写(Override)原有的函数,例如将 isPro ​或 isPaid ​等权限校验函数的返回值强制改为 true 。 ​ 文件替换 ​:对于某些版本,补丁可能直接替换了应用目录下的 app.asar ​文件(Electron 应用的打包文件)中的特定模块,或者修改了 package.json 中的启动脚本。 使用指南:如何安全部署 前提条件 已安装官方版本的思……