阅读视图

静风说15岁了

不知不觉这个博客已经诞生15年了,回想当初博客建立时的情景仿佛就在昨天。那时候谷歌还可以访问,韩寒还在写博客,天涯社区还没有关闭,微信还没有诞生,我还在用按键手机。现如今移动互联网极速生长,网络中心化愈加严重,中文网站逐渐消亡。不管网络环境如何变化,我仍然在写博客,博客更真实更纯粹地记录了我的生活,它已经是我密不可分的一部分了。

这些年为什么会一直在写,因为我有「表达欲」和「记录欲」,发生在生活里的小事,我总想记下来,可能它并没有特别的意义,想着记下来等以后再看。偶尔翻看写过的文章,总会感叹幸好有了这个博客,不然好多事情好多想法就不记得了。

这个博客的内容比较杂,没有特别的主题,也没有「垂直领域」,生活里发生了什么就会写什么,读了一本书、看了一部电影、去过一个地方、学到一点知识、冒出一点想法和思考,这些我会通通写到博客里。写的多且杂,文笔不好,深度也不够,通常都是想到哪写到哪,不润色,不修改,直抒胸臆后「写完就走」,大部分文章没什么可读性,读者估计也不爱看,可是我还是忍不住记录这些东西。

建站之初,我花了很大的精力和时间来鼓捣这个博客:加入Google Analytics,每天看有多少流量;添加这样和那样的功能,只要自己喜欢觉得读者也需要;想着怎么才能赚钱,接入Google AdSense;为了增加流量,把文章同步到各大平台。现在对这些都已经看淡,只想有个可以写字的地方,把博客简单地当作生活的笔记本。今年把域名续费了十年,打算一直写下去,继续用博客记录自己的生活和思考。

  •  

又一个 WordPress 友情链接插件

友情链接是众多博客之间建立联系、互通有无的重要纽带。然而,使用 WordPress 的古腾堡编辑器制作友情链接页面,效率实在太低;网上也难找到一款完全符合我需求的友情链接管理插件。放在过去,我或许就将就用了,但现在,为什么不尝试借助 AI,做一个完全符合自己需求的插件呢?

插件特色功能

  • 简洁美观的友情链接展示页面:每张卡片包含网站名称、图标、描述,以及最新文章。
  • 对一周内有更新文章的博客卡片,自动添加光晕动画效果。
  • 后台可完整管理网站链接,支持添加、编辑、删除及拖拽排序。
  • 根据设定的时间间隔,通过 RSS 自动更新博文信息。
  • 支持一键导出全部友链数据。

效果预览

👉 点击查看效果

效果图
后台界面

使用方法

  1. 前往 GitHub 下载 zip 安装包,并在 WordPress 后台的「插件 – 添加插件」中上传安装。
  2. 启用插件后,在后台左侧菜单中找到「Friend Links」进入管理界面。
  3. 填写必要信息:
    • 站点名称
    • 站点链接
    • 图标 URL
    • 描述(可选)
    • RSS 订阅地址(可选)
  4. 点击「Add New Link」即可添加友链。
  5. 在页面或文章中使用短代码展示友链页面。
以短代码调用页面

其他设置

  • 拖拽排序:在后台管理页面可直接拖拽卡片调整顺序,点击「Save Links Order」保存。
  • RSS 自动更新:插件会根据设定间隔自动检查 RSS 并更新文章信息。默认间隔为 24 小时,可在「Settings」中修改。
  • 数据导出:前往「Export」选项卡,点击「Export Links」按钮导出 CSV 格式的友链数据。
  • 博客更新标识:在「Settings」中勾选「Enable Glow Animation for Recent Posts」,可为近 7 天内更新过的博客添加光晕效果。

与 AI 的初次对话

你是一个优秀的开发者和网页设计师,精通 wordpress 插件的开发。你要帮我设计一个 WordPress 插件,用于展示博客友情链接页面里的网站和它们的最新文章。具体要求如下:

## 功能
* 在 wordpress 后台有一个「友情链接管理」的页面;
* 在「友情链接管理」页面中,可以管理友情链接网站,包括添加、编辑、删除、排序网站;
* 添加新的网站时,需要添加网站图标、网站名、网站网址、网站描述、rss链接(网站图标、网站名、网站网址是必填,网站描述和rss链接可以不填);
* 在「友情链接管理」页面中可以设置,每隔多少小时自动通过 rss 更新最近的文章,并且只会储存每个网站最新的一篇文章的信息,其余的会被清除;
* 如果无法通过 rss 链接获取文章,或者没有 rss 链接,则会显示“无法获取文章 (>﹏<)”;
* 有一个导出友情链接的按钮,可以已添加网站的信息已 csv 的形式保存下来
* 有一个立即更新的按钮,点击后可以立刻抓取 rss 信息;点击按钮后会有进度反馈,并且告知成功获取了多少,失败了多少个
* 通过短代码 [见图] 来调用该展示页面

## 设计
* 设计的样式参考上传的截图
* 默认一行两张卡片,每个卡片中包含网站图标、网站名、网站描述、最新的文章以及文章的发布日期,点击网站图标、网站名会在新浏览器页面中打开该网站;而点击文章名,则直接在新页面中跳转到该文章页面。
* 卡片的大小是固定的,不会因为浏览器宽度变化或者设备变化而改变大小,在手机上,或者浏览器宽度不够时,会自动变成一行一张卡片,能完美适配电脑和手机。
* 展示页面应该自动适配我博客的页面结构,比如我的博客主题自定义中有“狭窄宽度”和“正常宽度”
* 站点图标为圆形
* 站点名字体加粗,字体颜色为主题默认颜色
* 网站描述最多只显示一行
* 最新文章显示区域背景为浅灰色,最多只能为一行,右侧是文章更新的时间;最新文章的字体会使用博客主题默认的颜色,而网站描述和文章更新日期的字体会使用 #D3D5DA;当没有获取到文章时,显示“无法获取文章 (>﹏<)”,且字体颜色为 #D3D5DA;无论是否获取到文章名,这个区域的高度都是一致的,这样视觉上才是整齐的。
* 卡片边框的颜色为 #E7E9EF,宽度为 1,边界半径为 14
* 最新文章下面的灰色背景的边界半径也为 14
* 当鼠标指向卡片时,卡片会有悬浮和阴影的效果,但效果不要太强。

## 特别注意!!!
* 当卸载该插件时会删除掉插件相关的所有文件和数据,无任何残留,并且对网站不会有任何影响

其他 AI 制作的插件

又一个 WordPress 友情链接插件最先出现在Jack's Space

  •  

即使集市再繁荣也应该拥有属于自己的独立店铺

即使集市再繁荣也应该拥有属于自己的独立店铺

平台就像一个集市,既有卖内容的商家,也有来消费或闲逛的游客。在平台上注册账号发布内容,就像在集市上摆摊,我们不需要交租金,因为平台也知道,只有人流多的地方才有生意。

通过平台发布内容来表达自己或吸引顾客,确实比在偏僻的地方开店更能带来流量和收益。但集市终究是短暂的,不是自己的地方。哪天平台有新政策或倒闭了,我们也只能打包走人。

在集市上经营摊位,最重要的是不断结识新朋友、收获新的交流。别指望这个免租金的摊位会永远存在。

摆摊是一种很棒的体验,但我们还是应该拥有一个属于自己的店铺。虽然不求像集市那样的人流量,但装修店里的每个细节——灯光、桌椅、门前的花草——都是对自己的愉悦和治愈。

我会在集市上和大家谈笑风生,邀请大家有空来我店里坐坐。我的店位于不为人知的「半山腰转角处」,虽然不像集市那般丰富和有趣,但也算是个不浮躁的精致小屋。

「她的蓝」是我自建立的个人摄影品牌,创建于 2019 年,各大自媒体平台和制作客户摄影集的署名都会用到这个名字。除了像 b 站、小红书、抖音等等这种集市上的摊位,我也有自己的独立店铺——独立博客,你可以在搜索引擎输入「她的蓝」,通常第一个链接便是了,点击进去即可阅读,又或者可以输入我引以为傲的域名也可访问。

独立博客虽然更新不勤,但闲暇业余也是用心经营,欢迎大家有空访问光临。

即使集市再繁荣也应该拥有属于自己的独立店铺
我的桌面和独立博客
  •  

我们要成为专注的人

我们要成为专注的人

以前,我很喜欢收集那种人们拿着相机,专注于拍摄眼前景象的照片。最初,我以为自己只是迷恋相机设备,或者是喜欢记录时光的浪漫。然而随着时间的推移,我意识到我更喜欢的是人们全神贯注地处理事物的样子——比如在图书馆里看书,专心致志地做笔记,或者埋头写作。现在我才明白,我热爱的不仅仅是工具本身,而是人们用心去掌控工具,朝着目标努力的那份专注与投入。

我们要成为专注的人
拍摄于 2017 年,和朋友去深圳园博园玩摄影
我们要成为专注的人
拍摄于 2013 年,和朋友去看许巍演唱会

难以专注的时代

不知不觉,我已经使用哔哩哔哩十二年了,接触互联网也刚好二十年。从网瘾少年到从事电商行业,屏幕与键盘早已成为生活的一部分。我亲历了简中互联网的发展,从 1990 年至 2000 年的探索起步,到 2000 年至 2010 年的百花齐放,再到 2010 年至 2020 年的移动互联崛起。进入 2020 年后,「他们」对互联网的全面接管让我再也无法断开网络生活。

在这个短平快的时代,专注成了稀缺品。各大科技公司绞尽脑汁夺取我们的注意力,延长产品的使用时长。不仅如此,用户(博主)也在用尽各种「黄金开头三秒」「爆款钩子」等技巧来吸引点击、播放和点赞。这本身无可厚非——毕竟这是他们谋生的方式。然而,对于大多数观众来说,停止刷视频、关闭网页却变得异常困难。一眨眼,半天光阴悄然流逝,只留下短暂的满足感,现实中真正重要的事情却被搁置,视频中的「知识」也未能转化为行动,甚至被遗忘在收藏夹的深处。

奖赏机制,沉迷成瘾

多巴胺是一种神经调控分子,同时也是单胺类神经递质。大脑中存在多条多巴胺通路,其中一条在奖励系统中起着至关重要的作用。它驱使我们对某个结果产生欲望或厌恶,进而促使我们去追求或回避。

需要明确的是,多巴胺并非所谓的「快乐分子」,它更像是「获取更多」的驱动力。我们之所以感到愉悦,并非源于已经得到的事物,而是来自于不断「追求更多」的过程。而这种愉悦往往是短暂的,因此,我们会不自觉地反复刷新屏幕,持续探索、发现,试图获得更多的信息和刺激,以满足内在的渴望。

有人统计了「做一些行为中会分泌多少多巴胺」的排行,数据未经考实,但可大概参考参考。

  1. 撸猫撸狗 (27 单位)
  2. 在田野里散步(43 单位)
  3. 被表扬(51 单位)
  4. 游泳(56 单位)
  5. 滑雪(59 单位)
  6. 看体育比赛(61 单位)
  7. 很美的睡一觉(64 单位)
  8. 洗个热水澡(71 单位)
  9. 发现一个新音乐(75 单位)
  10. 看最喜欢电视节目(76 单位)
  11. 跳舞(80 单位)
  12. 学一些新的东西(82 单位)
  13. 早晨一杯热咖啡(84 单位)
  14. 读完一本书(87 单位)
  15. 变得高效-心流(89 单位)
  16. 帮助他人(90 单位)
  17. 捡到钱(92 单位)
  18. 按摩(93 单位)
  19. 听音乐(96 单位)
  20. 冥想(100 单位)
  21. 挠痒痒(106 单位)
  22. 非常疲倦时入睡(117 单位)
  23. 和朋友玩耍(120 单位)
  24. 收到喜欢的人发来的信息(130 单位)
  25. 吃最喜欢的食物(130 单位)
  26. 锻炼(142 单位)
  27. 喝酒(153 单位)
  28. 收到工资(165 单位)
  29. 玩电脑游戏(176 单位)
  30. 非常憋的时候上厕所(179 单位)
  31. 加薪(184 单位)
  32. 通过一个考试(185 单位)
  33. 药品-吗啡(190 单位)
  34. 亲亲(192 单位)
  35. 滚床单(205 单位)
  36. 赢得赌约(210 单位)
  37. 抽烟(220 单位)
  38. 登顶珠峰(223 单位)
  39. 还钱(226 单位)
  40. 和一个人结婚(231 单位)
  41. 男性 gc(240 单位)
  42. 毒品-可卡因(325 单位)
  43. 女性 gc(480 单位)
  44. 彩票中奖(750 单位)
  45. 陷入爱河(760 单位)
  46. 毒品-甲基苯丙胺(1280 单位)

多巴胺还有一个重要机制——阈值。当我们完成一项高多巴胺分泌的活动后,往往会对那些分泌较低的活动失去兴趣和动力。比如,打了几场游戏(分泌 176 个单位的多巴胺),此时想要静下心来读一本书就变得异常困难。阅读显得枯燥乏味,而我们只想继续进行能带来更高刺激的活动,比如继续打游戏、刷视频。

如果想让读书变得有趣,关键在于降低多巴胺阈值。要做到这一点,需要给大脑一段「静止期」,这对很多人来说极其困难。或者通过一些「痛苦」的方式来调节,比如洗冷水澡、跑步等。这些活动能帮助大脑恢复平衡,降低对高刺激的依赖,从而让阅读等低多巴胺活动重新变得可行。

生命就是一团欲望,欲望得到了满足就会无聊,欲望得不到满足就会痛苦,人生就像钟摆一样,在痛苦和无聊之间左右摇摆。——叔本华

这种对「更多」的渴望,源自我们祖先遗留的基因——他们习惯于囤积贝壳、食物,总是不断寻找、收集、储藏。这种行为触发了大脑中的多巴胺分泌,让我们乐此不疲。然而,这种永不满足的机制,如今已经从生存的工具,变成了分散专注力的枷锁。

手机不适合专注阅读

手机和 APP 天生不适合从事需要专注的事情。小屏幕让阅读和处理图文内容变得吃力,用手指在屏幕上打字更是低效至极。手机的适用范围本应局限于电话、即时消息、扫码支付、随身音乐、闹钟日历、导航和天气等日常需求。而严肃的阅读、写作、剪辑调色等深度工作仍然离不开电脑(暂时不提纸质媒介),平板也许是勉强的替代,但手机显然不够适合。

我们要成为专注的人
拍摄于 2018 年,我的 iPhone se

厂商不断扩大屏幕尺寸,将手机卡在了 6 英寸这个临界点,使其拥有了更大的显示空间。然而,这种尺寸的手机介于传统小屏幕和平板之间,既无法完全胜任阅读和写作等严肃任务,又不失为碎片化娱乐的最佳工具。原本设计为方便生活的手机,如今却成为了消耗专注力的娱乐载体。从根本上来说,手机并不适合承载深度的思考与专注。

几乎快要放弃我所专注的博客

在 2020 年之前,我一直坚持着博客这种载体。从购买域名和服务器,到搭建程序、折腾主题,再到撰写文章和推广,我满怀期待,幻想着有一天身边的人会访问我的博客,阅读我的文字,与我讨论那些有趣的观点。然而,现实却给了我当头一棒。

我们要成为专注的人
拍摄于 2021 年,我的桌面和博客

博客始终像是自娱自乐的存在。身边的人从未在浏览器里输入过我精心挑选的域名。博客上的留言寥寥无几,也只是那几个博客圈的熟人偶尔互动。人们的注意力被吸引到了小红书、抖音、哔哩哔哩等平台,那里内容丰富、形式多样,又新奇又好看。谁还会耐心读枯燥的文字?又有谁会特意打开一个访问都显得麻烦的网站。

渐渐地,我感到心灰意冷。这些平台就像一座座喧嚣的集市,吸引着川流不息的人群,而我的博客却像一座孤岛,冷清、孤寂,无人问津。

文字更适合专注

我经常怀疑自己是否该放弃电脑端,转而投身移动端。经过这几年的体验,我发现各大平台的移动端阅读体验实在差强人意。如今大众主流平台几乎被短视频占据。不可否认,视频更适合传播,人们不需要滑动屏幕,只需跟随进度条和作者的节奏,就能看完整个内容。

但视频也有显而易见的缺点——相比文字,它的阅读效率极低。文字可以一目十行,快速提取重点,而视频即使倍速播放,也需要从头到尾看完才能获取信息。更糟糕的是,现在许多博主为了争取流量和互动,往往会在视频内容中加入大量冗余的「话术」和无意义的铺垫。这种「拖时长」的做法不仅浪费时间,还大大降低了内容的质量和阅读体验。

文字更适合思考

无论何时,图片的作用始终是在视觉上辅助传递信息,但信息的核心依然是文字。观看图片几乎无需思考,而阅读文字则需要经过大脑的深度处理,这一过程本质上就是思考。与视频的被动信息接收不同,阅读文字需要主动理解,能够随时停下来思考、做笔记、理清逻辑,加深记忆,并最终形成属于自己的知识体系。正如老话所说:「有些事情很久不做,就会变生疏,脑子都生锈了」这句话背后其实蕴含着科学依据。

当我们学习时,大脑会发生神经可塑性的变化,即在神经元之间建立新的连接。练习得越多,这些连接就越牢固,信息传输的速度和效率也随之提高,使我们在踢足球、阅读、绘画等方面不断精进。可以将神经元之间的连接比作森林中的小径——在没有路的森林中前行十分困难,需要不断开辟道路。而如果经常行走同一条路,路径会变得清晰易行。相反,如果长时间不使用,植被会重新覆盖,小路会慢慢消失。这与大脑的运作机制如出一辙——当你停止练习某项技能,神经元的连接会逐渐减弱,甚至最终被修剪、移除。这也是为什么整个夏天没有阅读的人,开学后会觉得读书变得困难。

因此,强化神经连接的关键策略就是反复激活。只有通过不断的重复和实践,大脑的通路才能变得更加稳固、高效,帮助我们在各种学习任务上取得更好的进步。

专注实事

当我洗澡、上厕所、散步或跑步时,思维总会变得异常活跃,许多困扰已久的事情,常常能在那短短的十几分钟里豁然开朗。可一旦坐下来,准备记录这些想法时,脑海却突然变得一片空白。接着,习惯性地打开小红书、哔哩哔哩、微信,开始毫无目的地在网络中游荡。

这与我最初使用电脑的习惯密切相关。刚接触电脑和互联网时,「探索新事物」是我的主要目的。我不停地使用搜索引擎,寻找那些有趣、好玩的网站,在一个个页面之间跳转,继续挖掘有趣的帖子。久而久之,每当坐在电脑前,我总会习惯性地开启探索模式,而不是将其作为创作的工具。

但在公司的环境中,情况却截然不同。每天的工作围绕着事务处理,电脑仅仅是一个高效的生产工具,目标明确,任务清晰,几乎不会被探索的冲动分散注意力。

改变习惯,是一个痛苦且漫长的过程,需要慢慢适应。 只有在不断的实践中,才能找到自己的方向,一次次试错,然后继续前进。相比于追逐流量的短视频,或许,静下心来写好博客,勤于阅读和思考,专注于深度、系统的事情,才是更值得坚持的长期之计。

集市终有散去的一天,摊位上曾琳琅满目的商品,最终都要被打包收走,人们各回各家。在互联网的世界里,或许我还有属于自己的一片自留地。

我们要成为专注的人
拍摄于 2021 年,从公司窗口看日落
  •  

我的博友圈2024年度报告

时光荏苒,岁月如梭,转眼间,已步入岁末。回首过去的 2024 年,博友圈感恩有您! 您的博客「登山亦有道」于 2024/08/01 被博友圈收录,到今天我们已一起走过了 151 个日夜!超过了&nb …
  •  

刻板偏见诞生路径

经过当事人同意,想以一个案例来聊聊「刻板偏见」这件事。这个案例是最近从博客来 Telegram 上面私信我的朋友,他留言的方式很有趣:

我觉得你很有趣,想跟你聊一聊。

这句话可能也是很多人在打破社交第一层屏障惯用的台词,所以我回复对方「如果我不有趣,是不是就不想跟我聊了」,他接着回我「你如果这样说,我会觉得你确实很有趣」。

我们聊的内容,是他被自己亲密对象指控「刻板偏见」这件事,他摸不清楚到底什么是「观点的表达」、什么是「刻板偏见」?于是我问了他几个问题,也是我们日常生活中最常见的刻板偏见:

  • 开车时遇到一辆占着超车道缓行的轿车,你认为是?
  • 进电梯时,一个年轻人上下打量你后,朝着轿厢角落挪了挪,你认为是?
  • 餐厅服务员对前桌客人笑脸盈盈,轮到你点餐时却面无表情,你认为是?

他几乎无法代入场景当中,和我纠结了很久「题干」里的「人」到底是一个怎样的人。其实大部分人在听到这三个问题时,也在纠结「题干」,因为信息不全必定会导致认知偏差的出现,那干脆就利用认知偏差引发的「刻板偏见」呢?

我让他用直观感受来想象这三个题干里的人——他觉得第一个是新手女司机、第二个是身材走样的满脸络腮胡的 GAY、第三个是好色的男性因为前一个客人是女性……哇,我好爱这些答案!用刻板偏见竟然可以细化到性别、性向、外貌甚至是性格。得出这些答案的原因,是因为他在现实生活中遇到过类似的场景,所以觉得这一类人大概率是相似的。


事实上,他最开始和我建立联系的那句话也很像是「刻板偏见」,是因为定义了我对于他而言是「有趣」的,所以我才有了「资格」可以供他聊聊天。他认为这是「主观感受」且是正向的主观感受,所以也在表达一种观点。

但如果对方并不是一个有趣的人,或者他很厌恶别人说自己有趣呢?「我认为」的难点就在于,如何确定你的认为正好就是当事人所期待的呢?其实我在《为什么人们开始不会“提问”了?》有提到过「技巧」一事,核心是在于从「我认为」变成「看见对方」。但这两个抽象的语义好像又是在说同一件事,是因为我看见了你,所以我认为你很有趣。那如果「有趣」有具象化的表现了,就拿这位朋友跟我的开场白而言,想要说中我们这种创作博客又臭屁之人的内心,把「认为」后置,先从一个看似客观的事实引出「特别」:

我看你每天都更新博客,你好厉害。

不过如果他针对我说了这种话,我也会回复一个「有事说事」——是的,游戏规则他妈的都在我这里哈哈。当然啦,这是一种底层逻辑的技巧,即引出对方最「特别」的点作为开场,而不是「我觉得你是一个怎样的人」。

他问我如果是我想跟一个人聊聊天,应该如何开场,我只会以「我们可以聊聊吗」作为开场。结果他又开始多虑,觉得这样的开场会不会缺乏目的性,会让人觉得打扰,万一对方因为不清楚你来的目的而拒绝聊天呢?

看吧,是不是关注点又都回到了自己身上?


我以前做过一个星座 APP 的产品经理,产品刚上线需要伪造大量的活跃用户,就需要在不同的内容下面安插「假评论」。这个数据库的工作交给了文案处理,结果她写上来的文案都是「哇,这篇文章好棒」「很有深度」「没想到还能这样分析**座」……

一个星座 APP,上面提到了自己的星座,人们最关心的是什么?

回到最开始提到的,大部分人之所以会纠结题干,是因为信息不够充分,才无法代入场景,但利用刻板偏见又可以轻松地模拟出题干里的要件——为什么?因为当信息不够时,我们只能从自己的认知世界里寻找比对的答案。

没人会关心(全世界的)摩羯座运势如何,他们关心的是(我这个/与我相关的)摩羯座的运势如何。

这也是我帮老婆做了十年星座运势公众号发现的问题,他们不会因为一篇运势很准而转发朋友圈,因为这就意味着他们的「运势」作为一种信息差被其他人看到了。所以这么多年以来,运势相关类的图文不可能有很高的扩散程度。

「我认为」的核心是「我希望是如何的」,「我觉得你很有趣,我们可以聊一聊吗」就是我希望能跟你聊天,所谓的有趣不过是看上去的「我很懂你」罢了。换句话说,想要聊一聊不就是「目的」吗?你会觉得对方不明白这个目的?制造假评论的核心,是让这些人变成一个个「只能先看到自己的人」,比如「我男朋友是双子座求分析」「处女座今年 6 月份有复合的可能吗?」「说得太准了,我真的很讨厌我的狮子座同事!」……


但反过来,因为眼里没有别人,所以当他们真的需要互动的时候,就拿简中博客圈来说,目的性变成了「我需要到处建立我的 SEO」,所以你常常会看到那些文不对题的、或者说只是看到了文章标题或者几行关键词就开始到处评论「留爪」的评论。

另一种,就是这位朋友身上发生的「小心翼翼」,他觉得如果不把事情交代清楚,很有可能会被拒绝,只要我「够真诚」,对方就越难拒绝我——那够真诚的目的到底是想要表现真诚,还是想要促成那个我能和对方聊天的「目的」呢?

于是这件事情再加码,即如果我都只关注到自己,是不是对方也会察觉到自己的目的。所以便开始堆砌大量的「赞美」,当这些赞美又不是出于真正「看见对方」的时候,就变成了刻板偏见。然后刻板偏见又会反过来作为评价去筛选他人——她是一个女权运动者,所以她的言论不可能帮男性说话;他是一个有妇之夫,他有什么资格来聊 LGBTQ+ 的话题;她是一个不婚主义者,所以她根本不可能理解婚姻的意义……

就此,刻板偏见的路径完成闭环:

看不到对方 → 所以我认为 → 依旧没有真正看见对方 → 刻板偏见 → 我看透了对方 → 再也无法看到对方

我给这位朋友的建议是,我们尊重观点,但需要思考观点是如何诞生的——比如「开车时遇到一辆占着超车道缓行的轿车」里的司机就一定是女司机吗?结果可能有两种,一种真的是「女司机」,所以结论是「我说吧」;另一种结果发现是「男司机」,于是就会进行性别羞辱「开车开成这样是不是男人啊」。

这两种观点诞生的路径就是源自于「刻板偏见」,且修正没有意义,除非真的跟他发生了追尾,才知道这个人开车紧张兮兮的当事人拿证以来第一次开车,是因为想要送临盆的妻子去医院——当然,这是我从剧本的角度构建的冲突感,但如果真是这样的,人们又会因为这样的结果而感到内疚。


当然不能否认的是,刻板偏见是我们认知系统里的「最短路径」,可以最快地定义一件重复性人或事、甚至是对未知事件最快归纳。它更接近于一种「生物本能」,即看到老虎就会大量分泌肾上腺素准备爆发时逃跑一样。

若不需要深入交往,启动了刻板偏见划分了属性之后,或许就不会再跟这个人有任何的交集,当下这样的处理模式更像是一种大脑的省电模式,至少不会为不需要耗费精力的人浪费更多。但很可悲的是,当刚才我提到的「闭环」形成之后,这种刻板偏见的闭环将会用在生活中的方方面面,最后还要怪这个世界不理解自己,或是自我合理化——「我才是那个最特别的人」。

然后在「最短路径」里寻找成功的方式,却只能通过否定那些「长途努力」来证明自己是对的。

好了,这就是刻板偏见的底层逻辑的「底层逻辑」。

  •  

4月杂记 动物园 鱼缸电机炸机 停电

4月

4月份的记录姗姗来迟,整个4月没做什么事情,一直都是事情推着我走,上线了一个服务,做完发现有无数相同服务,等于重复造轮子,我再也不重复造轮子了,新的折腾点是最近再美化xiunobbs,准备做一个社区,不是我之前Ai开发的社区Voyseek。 这次是拿现有系统美化的。

唐山动物园

首先是去唐山玩,去了唐山动物园和唐山博物馆,到了动物园天气很好,发现大熊猫在睡觉,根本看不到,带着闺女在大熊猫玩偶前面拍照半天,看了很多东西。我很意外唐山动物园的动物明显比北京动物园生活好,吃的都胖了。北京动物园每次去,都对那些动物报以同情。

 

停电了

其次是停电后,我鱼缸的电机炸了,非常意外的意见,之前也总停电,还没有遇到电机炸的。养了一缸孔雀鱼和辣椒蟹,小螃蟹都捞出来,螃蟹无氧会死。然后立刻联系商家,品牌是Yee的2.5L侧挂过滤,去年买的,还在保质期。把点击邮寄回去,然后再寄回来,花费了大约四天左右。孔雀鱼果然结实抗造,一点事没事。完美衔接,然后再把小螃蟹们放回鱼缸。

停电那天有点坑,停了很久,晚上回家我一路从一楼爬到20层,中间歇息了一次,然后就发现楼梯应急灯都仍然给砸了,每一层砸一下,气的我在业主群大骂,也不知道哪个孙子干的,后来我看到有邻居直接在电梯憋了一个小时才出来,差点笑死😄

接触自然

天气转暖后,闺女每天都要在小区公园玩半天,之前发现闺女怕蚂蚁,这次有意识的带她玩蚂蚁。捉住小蚂蚁,然后用小棍子捅,现在已经不怕蚂蚁了,没事就直接拿手抓,这样也很好,比怕这些小蚂蚁小虫子强多了,小孩子还是要接触自然。

新的折腾

前几天看到Koobai老哥的店铺转为金牌卖家,我就想起来自己原来的宝淘店也是金牌卖家,因为和供应商的拉扯就关闭了。楼下开电商店铺的兄弟前两天换了个大奔,邻居小哥我直接🌹眼红,犹豫是否把淘宝店重新开起来。之前淘宝店还是赚钱的,就是因为供应商闹的,店铺被折腾废了,不过这个事情只作为一个副业试试,这两年的经济形势,凡事不大折腾,大折腾必挂。稳一点要比激进强太多了,凡事稳中求进。如果开店,我会厚颜在此要求博友苦力帮我刷单。

总结;4月份就这么过去了,五一马上来了。今年五一应该不会走远,还是带着孩子四处玩玩吧。提前祝福各位五一劳动节休息快乐。

  •  

自证陷阱能挖多深?

最近有一位从博客找到 Telegram 的创作者(我姑且称之为是创作者,因为他和我聊天的内容都是围绕着创作)。很可惜,我本想着今天来整理跟他的聊天记录,结果没想到他已经把我们彼此的聊天记录给删除了。

他找到我,是因为我在博客的文章里,提及过我曾坚持过 500 日写作,总计完成了 170 万字,他帮我做了一个数学题,即每天平均要完成 3400 字,这件事情本身值得质疑。所以他实际用另一种逻辑陷阱让我回答了几个看上去毫无干系的问题:

  • 我那时在做什么工作?
  • 我那时每天什么时候安排写作?
  • 我那时创作的内容是什么?

这是非常标准的「自证陷阱」的套路,因为这些问题会扯出更多的需要自证的内容。所以我用另一个方式让这个自证游戏变得更具有「参与感」。

我给了他一张截图,证明当初的《∞》坚持到了第 1700 篇文章(每天 3 篇,即 566 天左右),总计 1,741,300 个字。参与感的部分,就是让对方选择 1 到 1700 里的任意三个数字,我将这三个序号的文章内容展示出来。同时,如果该数字前后的内容是属于「系列」的,即当天的文字内容在聊一个话题,或是在完成同一部小说,他可以选择是否要看「关联性」的证据。


于是下一个自证陷阱出现了:如何证明这些内容的时效性?

因为当初的坚持写作并不是按照「日记」的形式,它和 2022 年坚持的每日写作不同,它没有一个「宏大叙事」作为背景线索,所以我能轻易地证明 2022 年每一天的坚持写作与社会正在发生的疫情闹剧的关联性。

所以我把自证游戏上升了一个层级,我需要自证「结果主义」。

我承认我无法证明时效性,就算里面确实提到了一些明确年份,但他仍然可以觉得我这是临时修改的,因为无法判别文章在「宏大叙事」里的关联性。所以我建议开始讨论「它们为什么没有被发表」。

果然,他掉入了我预设的圈套,开始质疑我为什么从未「发表」过。

我解释了当初在 LOFTER 的创作,以及最后因为敏感词审查注销 LOFTER 的情况。接着,我将这个「结果主义」的陷阱引至更难自证的「动机陷阱」。他果然开始质疑起我的动机:他显然不相信一个创作者会毅然决然地删除自己 170 万字的创作内容,以及在现在有了独立博客之后这些内容也没有再发出来,这「不符合」创作者的动机。

见他掉入圈套,主动权就回到我的手上:

以下内容我只能尽力回忆起我们的聊天内容,我对自己所说的内容记忆比较深刻,因为它本身是预设好的逻辑陷阱,关于对方的回答我只能大概还原内容。如果当事人有幸能看到这里,也可以从你的视角还原客观事实。

「你为什么觉得创作者就一定不会删除已创作的内容?」

他认为那是「作品」,是创作者的心血,它们本应该公之于世,才能体现出自己创作的价值。

「那也就是说,你赞同《写博客是为了自己就别他妈发表出来啊》的观点?」

他认为博客性质不同,别人想写什么那是别人的事。

「那我作为创作者,把已经发表的文章删除了,是否也意味着这是我的事?」

他认为这个逻辑说不通,因为我既然在博客炫耀了 170 万字的结果,那就应该证明其真实性,也应该接受他人的质疑。

「炫耀这个赛道我们先放一放,先回到我作为一个创作者是否拥有删除已发表文章的权力。」

他认为那是我的事,但是质疑我的真实性是他的事,不冲突。

「那如果这个时候,有人在自己的博客装逼,我是不是也有质疑其真实性的权力?」

「那如果对方认为这是他自己的事,发表出来的文章也是为了自己,那我是不是可以质疑你别他妈发出来?特别是还要被各种博客聚合网站抓取并公开出来。」

「除非你觉得这就是创作者普通人的区别,创作者发表出来的文章就是希望被看见、应该被质疑的,而普通人的博客就是经不起被质疑?

他认为这是当事人自己的选择,跟别人如何看待没有关系。

「那我们可以质疑那些博客主发布内容的真实性吗?」

他认为没必要,那是别人的成果。

「那你质疑我成果的原因是什么?」

「这个时候,再回到炫耀这件事,你既然觉得我是在炫耀,那我现在证明了我有实际的资格可以炫耀,那我帮你引导至动机层面,质疑我的创作动机有问题。」

「那你质疑我的到底是内容,还是质疑我的创作动机?」

推荐你质疑创作动机,因为它对我甚至是每一个创作者来说是无解的。比如之前就有人质疑我的动机其心可诛,所以我创作的内容不值得一看。

他认为这是别人的权力。

那这样的质疑可以作为定义别人成果的依据吗?

他认为不能,但同时切换了赛道,认为我写的东西太过激进,并不适合公开发表。

于是我们的赛道又被换到了「感受」层面,是因为他觉得我的内容过于激进。一旦进入到「感受」层面,就会进入到比「证明动机」还要困难的领域,即「唯主观不可破」。他只要咬死「就是不喜欢我」的结论,这个时候无论何种证明都将是越来越深的「自证陷阱」。这也是大多数情况下,吵架吵崩的根本原因:一旦就事论事被「感受」带偏进入到「唯主观不可破」的领域,那就不可能再有解决问题的机会,因为大部分的事情都变成处理「不同频争吵」

本着「参与感」贯穿始终,我最后给了这位朋友两个选择:

  • 我们双方同意立刻停止聊天,因为我们现在再聊你主观世界的事情,我无法扭转你对我、以及我的作品的看法;如果可以,你可以继续关注我的博客,如果有观点上的交流,我们随时可以在这里进行;
  • 我单方面希望结束我们现在的聊天内容,因为我无法扭转你的主观;如果你想继续聊天,我可以回复「认输」的聊天内容单方面结束我们的聊天内容,这样也让你来找我聊天这件事有个闭环;

结果,他没有回复我,就发生了最开始提到的,他删除了我们彼此的聊天记录。


以上,就是如何脱离自证陷阱,以及为对方设下主观陷阱的流程,总结一下:

  • 脱离自证陷阱
    • 避免回答毫无干系的问题;
    • 回到问题本身,你需要我「证明」什么?
    • 在证明的时候保留部分数据/内容,而不是全部公开,否则公开的数据很有可能会引发新的自证陷阱;
    • 将自证陷阱引导至「动机陷阱」;
  • 动机陷阱的陷阱
    • 质疑动机是对「个体」的质疑,将「个体」拓展到「群体」,迫使质疑动机出现自相矛盾的情况;
    • 东风破,你比东风还要破。都已经被质疑动机了,承认自己「烂」反而无敌;
    • 质疑质疑动机的动机;(字面意思)
  • 避免深陷唯主观不可破的领域
    • 如无法就事论事,一旦进入「唯主观不可破」的领域,及时抽身,不要妄图改变一个人的主观认知;
    • 比起「讨好」对方,不如联合「敌人的敌人」;
    • 你又不是人民币,为什么人人都要喜欢你;

  •  

像闪电一样加载WordPress页面:插件组和优化教程

在不使用CDN的前提下,如何提高网站的速度?想要让网站拥有像闪电一样的加载速度,最好的办法是启用缓存、无图、精简样式文件和字体文件等。我看了很多博客,几乎都是这个思路。

基础操作思路

使用对象缓存插件,比如Memcached、Redis等。
使用将WordPress等动态页面转为静态缓存的插件,比如SuperCache、LiteSpeed Cache、W3 Total Cache等。
使用图片压缩软件,如Smush、EWWW Image Optimizer、ShortPixel等。
今天我换个思路,刚刚把网站的Memcached停用,只启用SuperCache缓存,将WordPress的动态页面转为静态缓存。这是基础,毕竟动态查询还是比较慢的。在此基础上,再增加几块调整。

图片优化

目前这个优化方案针对的是我的博客。由于我比较喜欢放图,尤其是自己的臭脸图,所以图片优化就是重中之重了。
首先检查网站的首页调用的特色封面图片,质量非常大,一张就有8兆大小,首页还有很多这样的图片,无形中增加了加载的负担。这里我们的处理方法是通过钩子将首页的图片替换为缩略图,8兆的图片最后的大小变成了12k。

图片尺寸设置

在后台的设置>媒体中,你可以自己设置媒体大小。我的设置是:缩略图250px、中等580px、大图1280px。基本上这三个尺寸满足了大部分的使用场景,具体的质量大小建议你自己根据自己的博客来设置。
设置完后,使用缩略图生成插件。这里主要是特色封面生成,不需要生成其他图片,因为一般首页调用的都是封面特色图片。点击精选生成特色图片。
生成完缩略图后,小、中、大的尺寸就和你在媒体设置的保持一致了,我们就有了足够低质量的图片来作为首页和文章页面封面调用的来源了。插件名称:Regenerate Thumbnails。直接在后台插件市场搜索即可,启用然后在工具>重制缩略图中使用。
通过插件调用封面的缩略图,我没有直接修改主题代码,因为我平时总换主题。所以自己写了一个插件,用于直接选择调用首页和文章页面的特色封面质量。
你可以有三种选择,我的设置标准为首页缩略图250,文章页面580。这个插件不涉及数据库操作,不会影响网站性能,可以放心使用。
插件下载地址:optimize-thumbnails_T8GJX.zip

提前加载页面

提前加载页面这个思路,我是在@bosir的博客看到的。他提供的一个工具是instant.page,我发现一些博客主题已经集成了这个工具。提前加载的思路是:当我们访问网页的时候,鼠标悬浮在链接上,浏览器自动提取加载。当你点击的时候,其实已经加载过数据,这就造成了一种错觉,页面打开就像闪电一样。这个工具可以通过代码调用:
<script src="//instant.page/5.2.0" 
type="module" integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>

我也尝试通过代码调用了,但是加载的时候出现的效果是:有时候能用,有时候不能用,整个流畅性有问题。后来的思路是将js文件下载到本地,然后加载到主题里。鉴于我总换主题,就容易忘记添加代码,所以写了一个插件将这个功能集成到插件里面。开启后自动启用提前加载效果。核心代码基本上就几行,这里仍然不涉及数据库操作,可以放心安装插件,不会影响数据库加载。
插件下载地址:Jef-instant-page_NfJxN.zip

整体优化思路和插件组合

整体思路也比较简单:为特色封面设置小、中、大三个尺寸。
通过插件Regenerate Thumbnails重新生成尺寸,
通过插件JefThumbnails Size调用合适的图片质量,
通过Jef Instant Loader插件提前加载页面。
本文中使用的插件有:SuperCache动态生成静态、Regenerate Thumbnails缩略图重制、JefThumbnails Size特色封面质量选择来源、Jef Instant Loader提前加载页面,就这四个插件。

 

体验效果

优点:整体优化完换,删除浏览器缓存访问博客,速度有非常明显的提升!点击页面的加载的确有闪电一样的感觉。

不足:第一次访问首页的时候,速度仍然没有那么快,和bosir的首页加载仍然有差距。限制我的有两点,我的首页图片较多,无形中增加了加载成本,第二服务器是香港服务器,受到带宽影响和bosir国内的服务器没法比。

AI辅助:

文章排版由KIMI完成,代码开发由Cursor完成。

结尾

本文感谢 @bosir@沉沦 两位博友提供了具体的方法和一些借鉴性思路。针对于本文的具体使用,建议无图的下载插件JefThumbnails Size感受提前加载页面的魅力;如果博客图片比较多,又不想通过代码改主题的,直接安装插件操作即可。
如果你真的想体验闪电的速度,还是建议使用国内服务器,同时降低首页图片使用,或者无图。cdn也是一种不错的选择,本文的像闪电一样,到这里你知道了,纯纯就是标题党,闪电是达不到的,但是确实能够提升很大幅度的访问速度。
  •  

再小的个体也要建立自己的个人品牌

土木坛子

某日听我朋友也是前同事讲,他说他身边至少有4个朋友在我的影响下,开始了写公众号,包括他自己。这倒是我没有想到的。

实际上,我已经很多次和别人讲——尤其是年轻人,建议开启自己的自媒体。正如微信公众号的官网有这样的一句话,“再小的个体,也有自己的品牌”。再小的个体也要建立自己的个人品牌,用现在时髦的话来讲就是:个人IP。

严格意义上来讲,我是从2006年开始写博客日志,到如今差不多20年了。这么多年的经历下来,这件事对我的受益或许是最大的。这么多年来,我分享记录自己的经历,这么多年的所想、所思、所见和所得,一切都是随性分享,愉悦自己,甚至也没想到给别人带来什么用处。

但是,当一个人在自己小众的范围内去研究,只要做得比别人好——哪怕好那么一点点,你的能力会得到增长,认知会提升,你分享的东西会被别人看见,当实现了这些之后,赚钱的事情也就自然水到渠成了——如果你有需要的话,财富本来就是对认知的变现,否则有了也守不住。

你的公司可能会裁掉你,甚至它自身也可能会倒闭,但是你的创作内容和创作能力永远属于你自己,这是你的个人主权。你分享自己的见解,锻炼了自己的能力,而这些原创内容在不同平台传播的边际成本很低,并且它会随着时间不断地被重复,不断地被扩散,不断地被人看见,假以时日会产生复利的作用,产生飞轮效应。

这就是我作为一个写了近20年博客文章的人的真切感受,它带给了我超乎想象的收获,而很多人都不知道或者相信自媒体的魔力,更没有去认真执行。

  •  

AI编程 20分钟Cusor创建一个WordPress网站插件

目前,AI编程非常火爆,昨天看到@沉沦暴兵,一天发好几个插件,很多人很好奇怎么做的,正好把之前的一些操作经历整理一篇文章,之前通过Cursor创建了一个社交网站 ,该网站包含了最基本的注册、讨论、发帖、前台、后台、用户管理等功能。

作为一名互联网人,虽然我不会写实际代码,也从未学习过编程,但AI编程帮助我将一些想法变成了现实,我觉得很有趣,今天把整个流程分享给出来,以便于感兴趣的人直接可以直接上手,比想象的简单的多。

产品设计

今天,我们将花费20分钟创建一个WordPress网站插件,在开始之前,我们需要明确以下几点:

  • 插件的基本功能是什么?
  • 插件的性能要求,是否需要处理网站数据,是否有前后台数据交换?
  • 插件的基本布局和界面设计是什么样的?

确定了这些之后,我们开始第二项工作:撰写提示词。以我们的插件为实际案例,整理这些提示词。提示词可以是半成品,因为我们可以通过AI再次细化。我建议第一次大家都以作品临摹为主,因为跟着操作一遍熟悉一下整个工作台。

提示词部分:

我要创建一个WordPress插件,该插件的名字为JefBookmark,作者Jeffer.Z,主页www.jeffer.xyz

该插件的主要功能是记录用户输入的网址和网址名称,支持标签功能。输入的书签使用WordPress文章自定义类型实现。

后台功能包括书签列表、添加、编辑、删除等。前台通过短代码调用,可以将短代码插入任何页面调用书签列表。

书签布局为:顶部显示“全部”和标签1、标签2、标签3等,最多支持展示10个标签。这一行的下方为书签列表,列表中的书签包括图标、书签名称(超链接形式),右侧显示该书签的标签。

底部为标签的分页,分页数量可以通过后台设置。

然后,我们打开KIMI或DeepSeek,优化一下提示词,并告诉它要放在Cursor中使用。以下是优化后的提示词:

AI返回的提示词:

插件信息
插件名称:JefBookmark
作者:Jeffer.Z
主页:www.jfnote.com

功能需求
1. 书签存储
- 使用WordPress自定义文章类型存储书签。
- 每个书签包含以下字段:
- 网址(必填)
- 网址名称(必填)
- 标签(支持多选,最多10个标签)

2. 后台管理
- 书签列表:显示所有书签,支持分页。
- 操作功能:添加、编辑、删除书签。
- 标签管理:支持最多10个标签的添加、编辑和删除。
- 分页设置:允许在后台设置分页数量。

3. 前台展示
- 使用短代码[jefbookmark]在任何页面调用书签列表。
- 布局设计:
- 顶部导航:显示“全部”和所有标签名称(最多10个)。
- 书签列表:
- 每个书签显示图标、书签名称(超链接形式)和所属标签。
- 标签显示在书签名称右侧。
- 分页功能:底部显示分页导航,分页数量可通过后台设置。

技术实现
- 自定义文章类型:jefbookmark
- 字段存储:
- 使用ACF(高级自定义字段)或自定义元数据存储书签信息。
- 短代码功能:
- [jefbookmark]:用于在前台页面调用书签列表。
- 模板文件:
- 自定义模板文件用于书签列表的前端展示。
- 样式与脚本:
- 提供基础的CSS样式和必要的JavaScript功能。

插件开发要求
- 确保插件兼容WordPress最新版本。
- 提供详细的文档说明插件的安装、使用和配置方法。
- 确保代码清晰、注释详细,便于后续维护和扩展。

编辑器操作

将这个提示词创建一个readme.md文件,然后把提示词粘贴进去。在你的项目文件夹中,新建一个名为Jefbookmark的文件夹,将md文件拖进去。

打开Cursor后,按下Ctrl + I打开对话窗口,选择支持的编程模型为Claude3.5,然后在输入框中@readme.md文件,直接对它说:“Cursor,请根据该文件创建一个网络书签插件。现在请你根据提供的信息思考下,你要如何实现并列出来插件的大纲,然后将大纲和文件结构创建一个json文件。”

这时,Cursor会开始思考,并列出实现方法,你可以看到窗口它的回复内容,以及它创建的json文件。

这里需要注意的地方,一般cursor会把项目搞得很大,你要求他以最小MVP代码量和文件量实现,如果是特别简单的插件,直接告诉他,请以一个PHP文件完成插件所有功能,根据功能去评估文件大小和数量,不要让cursor制作非常大的结构和目录,那会导致它不停的去创建目录和文件,把代码搞得非常复杂。你也可以在最初的readme文件就通过规则限制它,我一般会看一下cursor会输出多大的结构,然后才会第二次对它校正。这里考验大家的是,你要根据功能判断多少个文件足够它完成代码。如果你的项目很大,一定要自己设计文件结构,而不是让cursor给你设计,那会造成项目过载,使用一对复杂的技术,增加代码工作量。

接着,直接告诉它“请开始实现”,它会创建一些代码和文件。当所有代码完成后,

  1. @codebase在输入框再次和它对话:“请检查全部代码和文件,查看是否有功能和代码衔接的错误,如果有请修复它。” Cursor会进行修复。
  2. 然后再次@codebase,告诉它:“请你做上线之前的最后一次检查,保证插件的激活、启动、停用、卸载正常。” Cursor会做最后一次检查并修改代码。

打包安装

最后,将代码打包成zip文件,直接在WordPress网站插件上传文件包。如果插件没有正常启动,会有提示,将错误提示复制给Cursor,它会进行二次修复。再次上传覆盖插件即可。此时,你就可以在后台添加你的网络书签,并将短代码[jefbookmark]复制粘贴到你想要展示的位置,保存后,再次访问该页面就能看到你的网络书签了。

地址演示

网址:https://www.jeffer.xyz/bookmark

全程花费20分钟,包括代码修复和功能调整。对于有经验的开发者来说,可能只需半个小时就能搞定。如果你是新手,一个小时也能上线你的插件功能。

这里的网络书签只是一个演示,你可以创建任何符合规则的插件,比如表单、数据统计插件、文章伪原创插件等,具体做什么取决于你的兴趣和职业。

如果你有确定的界面和网址,也可以直接把地址丢在窗口,要求他以这种界面输出,输出级别比如1:1,比如参考整个布局,比如参考样式配色等,和Ai沟通尽量以最简洁是对话让ai理解,如果说不清楚就丢图片和网址,Cursor也可以阅读图片,然后直接按照图片创作网页。这里拿插件作为演示,是因为插件的门槛最低,一般在宝塔里面修改过PHP文件的博友,我都把这批博友视为可以直接上手Cursor编程选手。

问题修复

也会有一些博友的项目或者插件,主题出问题,修复的方法也很简单,直接将项目解压到目录,Cursor打开该项目文件,然后Ctrl I打开对话窗口,@codebase 让他遍历一遍项目代码,然后说一下这个项目的功能是什么,整个文件结构是什么样的。这是第一次对话,你需要它熟悉项目。

第二次对话,选择出问题的文件或者文件的目录,在对话窗口将问题描述,然后 @该文件或者该目录,第二次对话不要求他立刻实现代码,一定要先问他是什么问题,Cursor会定位出来问题,然后你告他,请思考几种方法可以修复,并且告诉我几种方法的优劣势,然后他会告诉你。

如果一直无法定位到问题,一般有可能出现导致的,AI当前被降智,你引用的文件位置错误,或者你提供的问题和实际的文件不匹配,一般项目越大越复杂,引入的变量越多,越难以定位到问题本身。

其他注意

  1. 账号购买:去某宝买共享版3人500条高速,不要买号池账号,号池账号不稳定会降智的。
  2. 汉化处理:随便找一个Ai问一下,会给你教程。
  3. 适合人群:编码是否适合小白和程序员,适合任何可以通过键盘打字的人。
  4. 屎山代码:创建的代码是否为屎山,如果你不规范它就是屎山,屎山与否取决于使用人在创建产品之初,给Cursor设计的代码目录结构和前提。如果你本身就可以阅读代码,这样更好,你可以要求他使用具体方法,什么框架,以什么规范创作。
  5. 产品范围:还能写什么?可以写APP,小程序,网站,脚本等等。
  6. 需要工具:www.cursor.com 直接注册,赠送免费50条额度使用,但是有一个前提,打开编辑器对话需要开魔法节点,建议使用香港节点。

End

如果遇到问题,可以评论区讨论,现在很多博友都在用,经验比我丰富的也很多,我这里写一篇作为抛砖引玉,没有过多的去截图,因为整个cursor的使用教程非常多,大家直接B站就能搜索到,基础操作熟悉一下就可以,这里更多的是提供做产品的思路。

  •  

创作需要纯粹性吗?

一位朋友因为读了《写作与创作之间的黑洞——小说创作》后,顺藤摸瓜找到了我的Telegram跟我聊了起来。他觉得我不应该去定义他人小说的「类型」,如果别人的创作初衷不是我所说的类型呢?除非创作者从一开始就有意识地规训自己,才能保持创作的纯粹性。但是一旦创作变得有目的性,是不是就失去了创作的「纯粹性」?


何为纯粹性?

这并不是一个好界定的东西——毕竟我当年曾「大逆不道」地说过「创作并不是为了自己」这样的论调。每个人理解的纯粹性并不相同,为自己并且能够一直通过为自己而写,寻找到自己真正的「想要」,这也是一种纯粹。

当然,纯粹这个词本身就是暧昧模糊的,因为它无法单独以绝对的方式而存在,必然需要一个与之对应的标的,才能够体现出纯粹性。

例如,那些带有功利性质的,为了市场而创作的作品与内心真实独白,是为了自己而创作的作品,本身在某种程度上是「对立」的。所以按照中国式逻辑,如果想要证明为自己而创作是「正确的」,最佳途径就是去否定那些功利性质的创作。

所以,这一小节,我很难把「纯粹性」解释清楚。包括和这位朋友在Telegram上面聊了大半天,最终也只能得出「纯粹性」是非常个人化、经验主义的。

如果我们排除纯粹性的「对错观」,如果你觉得自己正在做自己想做的事情,那纯粹性的定义又变得非常简单。但这里又引申出了一个新的问题——我们如何保持「纯粹性」,即我们如何时刻定位自己,正在做自己想做的事情?

自此,纯粹性进入到了哲学领域,变得更加无解。

写作是对当下的思维方式和思想的真实反映,如果一直坚持写作,就能根据时间线看到自己思想不断进化和演变的过程。

《如何获得取之不尽的写作灵感?》|極客死亡計劃

Eltrac的这段话,很好地诠释了「纯粹性」的定义——纯粹性是流动非固定的。需要有时间维度的存在,才能够保持所谓的纯粹性。否则,所谓的纯粹性永远都是一个过时的点,都将是上一个你信誓旦旦发下的誓言。


创作的封闭性与开放性

花了一节的内容解释「纯粹性」,是为了抬高门槛规避掉「口头创作者」,也就是所谓的「我有一个非常棒的想法,但是我还没有写出来」的人。

当创作开始,就会进入到下一个阶段——「我写出了个啥?」

也就是说,我在《写作与创作之间的黑洞——小说创作》里提到的「类型」,是结果上面的分类,而不是「纯粹性」上面的分类。这里就会引发第二个很难界定的东西——「类型」是自我认定的,还是他人认定的?

在这里,我有必要再次强调一件事——创作类型、创作的纯粹性等看上去有诸多分类,内部并没有「对错」、「优劣」之分。并不是说「内心型」的作品就一定比「人物型」的作品「差」。但是,当作品需要追加一个「观众」维度的时候,才会出现「观众能否读懂」的差别。但这个差别仍然没有「对错」之分。

那么作品到底需不需要「观众」呢?我坚持的观点是需要——并不是需要观众对作品做出评价,而是作品本身是链接创作者与观众的存在。因为我是一个需要与他人产生链接和互动的人,所以我秉持作品的公开。但不可否认的是,一些作品也具有强烈的「对内」性。区别在于,是谁作为了作品的主体,去感受了「纯粹性」的存在。

刚才提到了,「纯粹性」是流动性的,在时间轴的两端,因此存在自我见证和他者见证的区别。同时,他者见证又同时可以为自我见证带来更多的反馈。类似于你和读者在一同成长,且读者见证了你的成长。


非纯粹性创作

首先,需要明确一点:创作需要纯粹性吗?

似乎这个问题跟最开始讨论的内容重复了。但现在这个纯粹性,是「对外的」。这似乎是一个「自证陷阱」,但当人们开始怀疑你创作的纯粹性时,你要如何自证?举个例子,当作品被人质疑时,一些创作者可能会说「我的作品是给能看懂的人看的」。至于是不是真的有人能看懂,或是整个「市场」对于作品的看法都是「看不懂」的时候,要如何证明创作的纯粹性?

很显然,这件事情几乎无解。因为一旦「纯粹性」在有第三人参与的时候,就必然需要面对他人评价的考验,且我们根本无法控制别人的认知和评价。那要不要认同别人的评价、我需不需要对抗他人的评价、我要不要为自己的作品证明纯粹性,就变成了作品之外的糟心事。

很显然,一旦开始纠结这些事情,纯粹性就会受到考验。甚至连自己都很难说服自己,进入到对内攻击的死循环。

你是不是发现问题了——「纯粹性」在对内的时候,需要持续的产出,才能体现出纯粹性的流动性;而「纯粹性」在对外的时候,人们可以以任何理由来质疑你创作的「纯粹性」,这个时候「纯粹性」就不复存在了——除非,你能在「质疑」声中继续创作,坚持自己的「纯粹性」,使得纯粹性继续保持流动。

根本问题不在于你如何维护「纯粹性」,而是你得继续,通过在单向的时间线上留下足够多的印记,才能证明「纯粹性」的存在。

需要「纯粹性」的并不是创作,而是当人们在失去创作的动能时,对自我的麻痹和对外的解释——

正因为我保持了创作的纯粹性,所以我才停止创作,去寻找所谓可以证明创作纯粹的纯粹性。


因此,试图用「我不希望你定义我的小说是何种类型」来证明「纯粹性」的,是不是应该先拿出「作品」,再来聊你在坚持怎样的「纯粹性」?

别他妈倒果为因~

  •  

静态网站优化方案

最近加了不少好友的友链,认识了许多网站上的朋友。由于众所周知的原因,有些国外服务在国内访问较慢,部分朋友的站点因此影响了国内用户的访问体验。为了帮助大家提高访问速度,我写了这篇文章,简单介绍了一些我所了解的网站加速方案,希望能够帮助更多朋友改善速度问题。
  •  

Jefrss Reader Lite1.03 WP-Rss博友圈展示插件

已经版本升级,这个是老的版本,推荐使用新版本的插件,新版本插件进行重构,支持六种朋友圈展示主题方式。
新版本地址 👉Jefrss Simple
简介:@Jefrss Reader Lite 是一个轻量级的 WordPress RSS 阅读器插件,专为个人博客设计,旨在帮助用户轻松订阅和管理文章更新。它支持多种实用功能,包括 OPML 导入导出、文章内容优化、多语言支持、移动端阅读等,同时提供分组管理和定时抓取功能,非常适合个人博客用户。

本次升级版本:Version: 1.0.3

升级功能

  1. 解决图标显示问题;修复了某些地区无法展示图标的问题,增加了Favicom多服务商选择功能。用户可以在设置中心选择图标服务商,确保图标显示的稳定性和兼容性。
  2. 图标样式优化:增加了调用图标圆角设置,用户可以根据自己的喜好调整图标圆角程度。默认设置为10%,当设置为50%时,图标将变为圆形展示,提升视觉效果。
  3. 短代码调用bug :修复了短代码调用的异常情况,修改count和excerpt_length长度设置。

后续升级计划

  1. 阅读进度展示:将增加阅读和未阅读进度的展示功能,帮助用户更好地管理阅读进度。
  2. 后台阅读绑定:从订阅列表进入阅读界面时,将绑定文章列表和阅读页面的状态,提升用户体验。
  3. 短代码展示:增加多条和不同新版式展示,供博友以不同喜好使用展示界面。

功能亮点

  • OPML 导入导出:方便用户迁移和管理订阅列表。
  • 文章内容优化:提升文章阅读体验,支持多种内容格式。
  • 多语言支持:满足不同语言用户的需求。
  • 移动端阅读:优化移动端阅读体验,随时随地阅读文章。
  • 分组管理:用户可以根据自己的需求对订阅进行分组管理。
  • 定时抓取:自动定时抓取订阅内容,确保用户不会错过任何更新。

使用示例

Jefrss Reader Lite 支持将博友订阅内容展示到 WordPress 的任何页面。具体展示形式可以参考 @邻居 的使用案例。

以下是展示效果的示例:

代码调用[#jefrss_latest count=”5″ excerpt_length=”80″ ] 数量和长度控制展示效果。去掉#使用。
===================
linlinxinglinlinxing
6 小时前

四月Vlog合集

【Vlog2025.4.27】在日本逛花卉(园艺)市场是什么体验? (在Bilibili观看此视频) 返回了东...

白熊阿丸白熊阿丸
12 小时前

近况:在幻觉与无力感之间的荡秋千

这篇文章是我在前段时间心理状态比较低落时,深夜躺在床上、在昏暗的灯光下胡思乱想时,用手机语音记录下来的初稿。经过一番修改才成文。为什么要把它发出来呢?经过一番思...

印记博客印记博客
15 小时前

武汉游记

3月18日晚上,从南昌西站出发,两个小时左右的车程,到达武汉站。 这是一次较为仓促的旅行,但也是期待已久,也是我第一次真正意义上的旅行,去湖南、江西之外的省份。...

===================

下载地址 :@Jefrss Reader Lite 1.03

注意:由于网络原因和过期情况,插件的下载链接可能无法直接访问。如果您遇到问题,请联系站长,提供新的下载地址。

求助 :  大家可以留下一些自己的朋友圈地址在评论区,准备给订阅插件做个主题设置,集成各种各样板式朋友圈,回头给插件用户使用,如果你有自己的朋友圈,可以留下朋友圈地址,不胜感激。

  •  

Favicon图标获取Api评测:国内外多个对比使用

一、什么是Favicon网站图标?

Favicon(网站图标)是网站的标志性图像,通常显示在浏览器标签页、书签栏或地址栏中。它是一个小图标,通常尺寸为16×16像素或32×32像素,用于快速识别网站。Favicon不仅可以增强网站的品牌形象,还能提升用户体验,让用户在众多标签页中快速找到目标网站。

二、Favicon图标的作用

  1. 增强品牌形象:Favicon作为网站的视觉标识,有助于提升品牌识别度和记忆度。
  2. 提升用户体验:用户可以通过Favicon快速识别标签页中的网站,节省时间。
  3. 优化网站SEO:虽然Favicon对SEO的直接影响较小,但一个完整的网站结构(包括Favicon)可以提升网站的整体质量,间接影响SEO效果。
  4. 适用于多种场景:除了浏览器标签页,Favicon还用于书签、历史记录、移动应用图标等。

三、目前使用排名较高的Favicon图标获取服务

1. unavatar.io

unavatar.io 是一个功能强大的头像获取服务,支持从多个平台(如Facebook、Instagram、YouTube、Twitter、Gravatar等)获取用户头像。它不仅速度快,还支持全球200多个数据中心的缓存,每月处理超过2000万次请求。此外,它还提供优化功能,包括压缩图片大小和保持高质量。
使用方法
  • 通过邮箱获取https://unavatar.io/sindresorhus@gmail.com
  • 通过用户名获取https://unavatar.io/kikobeats
  • 通过域名获取https://unavatar.io/reddit.com
特点
  • 多功能:支持多种输入方式(邮箱、用户名、域名)。
  • 速度快:全球缓存,响应迅速。
  • 优化:自动压缩和优化图片,节省带宽。
  • 易于集成:提供详细的文档和全面支持。
实际应用案例: 许多RSS阅读器,比如Follow,也使用了 unavatar.io 服务来获取用户头像,提升用户体验。这种集成方式不仅方便开发者快速实现功能,还能确保用户在使用过程中获得高质量的头像显示。
目前本站的插件 @Jefrss Reader Lite    使用的图标服务就是unavatar.io 提供,目前国内的自建服务相对较少,这里希望大佬们多推出一些这方面的服务,我也开发了对应的图标获取服务网站,只开发了一半,目前坑还没有填完的坑太多,短时间没有精力开发它了。

2. 谷歌Favicon API

谷歌的Favicon API是一个简单易用的服务,通过域名获取网站图标。然而,由于网络环境的原因,谷歌的API在境内无法直接使用。
API地址

https://www.google.com/s2/favicons?domain_url=目标网站域名

四、国内可用的Favicon图标获取服务

1. Cravatar

Cravatar 是一个国内的Favicon图标获取服务,由文派官方团队维护。它支持通过域名获取网站图标,并提供以下特点:
  • 自建源服务器:减少第三方回源次数,提高访问速度。
  • 支持WEBP格式:提供超过70%的压缩率,确保快速加载。
  • 三级头像匹配:整合了QQ和Gravatar头像,提供更准确的头像匹配。
API地址

https://cravatar.com/favicon/api/index.php?url=目标网站域名

2. AFMax

AFMax 是一个支持多种图标格式的Favicon获取服务,适合高并发请求的场景。
API地址https://api.afmax.cn/so/ico/index.php?r=目标网站域名

3. IconHorse

IconHorse 提供自动搜索网站图标的功能,并支持隐私保护,不涉及任何cookie和跟踪。
API地址https://icon.horse/icon/目标网站域名

4. FaviconKit

FaviconKit 是一个支持高频率请求的Favicon获取服务,适用于需要大量图标获取的场景。
API地址https://api.faviconkit.com/目标网站域名/

5. Favicon.im

Favicon.im 是一个简单易用的Favicon获取服务,支持通过域名获取网站图标。
API地址https://favicon.im/目标网站域名

五、推荐使用国内服务

由于网络环境的原因,许多国外的Favicon图标获取服务在国内无法正常使用,或者访问速度较慢。因此,推荐大家使用国内的服务,如 CravatarAFMax,这些服务不仅访问速度快,还提供了丰富的功能和良好的用户体验。

六、测试具体地址速率

由于各地网络环境不同,建议在使用这些服务之前,先测试具体地址的访问速率。可以通过以下方法进行测试:
  1. 使用浏览器开发者工具:查看请求的响应时间和加载速度。
  2. 使用在线工具:如 ping.pespeedtest.net,测试不同服务的响应时间。
这类重点提示,一定要根据测试结果,选择最适合您当前网络环境的服务。建议使用前,直接通过浏览器访问尝试加载不同博友地址比如这样,https://unavatar.io/www.jeffer.xyz ,以实际的测试效果为基准。各省市网络环境不同,本文的测试结果不作为通用结果,个体速度请依据实际网络环境为准。

七、总结

在选择Favicon图标获取服务时,建议优先考虑国内的服务,如 CravatarAFMax,这些服务不仅访问速度快,还提供了丰富的功能和良好的用户体验。同时,建议在使用前测试具体地址的访问速率,以确保最佳的使用效果。
写这篇文章说有博友在使用我的插件 @Jefrss Reader Lite  时候说图标出现不展示的情况,鉴于使用的是第三方服务,这里建议替换为自己网络环境可以通路的Api服务商。
  •  

定制博客开发者工具控制台个性化输出

✇obaby
作者obaby

首先祝大家元宵节快乐啊,其实这个东西也不是什么新奇玩意儿了。

很多网站都有这个东西,例如百度:

但是就输出这么个东西明显不够高级的样子,上午访问小小小小的小的博客,发现他的主题自带的输出还是蛮有意思的:

既然如此,俺就不如直接抄过来了:

            <script>
                // 消除控制台打印
                var HoldLog = console.log;
                console.log = function() {}
                ;
                let now1 = new Date();
                queueMicrotask( () => {
                    const Log = function() {
                        HoldLog.apply(console, arguments);
                    };
                    //在恢复前输出日志
                    const grt = new Date("08/10/2009 00:00:00");
                    //此处修改你的建站时间或者网站上线时间
                    now1.setTime(now1.getTime() + 250);
                    const days = (now1 - grt) / 1000 / 60 / 60 / 24;
                    const dnum = Math.floor(days);
                    const ascll = [`欢迎访问obaby@mars!`, `爱自己,每天都要开开心心的哦`, `
 ██████  ██████   █████  ██████  ██    ██  ██████  ███    ███  █████  ██████  ███████ 
██    ██ ██   ██ ██   ██ ██   ██  ██  ██  ██    ██ ████  ████ ██   ██ ██   ██ ██      
██    ██ ██████  ███████ ██████    ████   ██ ██ ██ ██ ████ ██ ███████ ██████  ███████ 
██    ██ ██   ██ ██   ██ ██   ██    ██    ██ ██ ██ ██  ██  ██ ██   ██ ██   ██      ██ 
 ██████  ██████  ██   ██ ██████     ██     █ ████  ██      ██ ██   ██ ██   ██ ███████ 
        `, "已上线", dnum, "天", "©2025 By obaby@mars V1.8.16", ];
                    const ascll2 = [`NCC2-036`, `调用前置摄像头拍照成功,识别为【小笨蛋】.`, `Photo captured: `, `🤪`];

                    setTimeout(Log.bind(console, `\n%c${ascll[0]} %c ${ascll[1]} %c ${ascll[2]} %c${ascll[3]}%c ${ascll[4]}%c ${ascll[5]}\n\n%c ${ascll[6]}\n`, "color:#425AEF", "", "color:#ff4f87", "color:#425AEF", "", "color:#425AEF", ""));
                    setTimeout(Log.bind(console, `%c ${ascll2[0]} %c ${ascll2[1]} %c \n${ascll2[2]} %c\n${ascll2[3]}\n`, "color:white; background-color:#4fd953", "", "", 'background:url("https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/tinggge.gif") no-repeat;font-size:450%'));

                    setTimeout(Log.bind(console, "%c WELCOME %c 你好,小笨蛋.", "color:white; background-color:#4f90d9", ""));

                    setTimeout(console.warn.bind(console, "%c ⚡ Powered by obaby@mars %c 你正在访问 小妖精 的博客.", "color:white; background-color:#f0ad4e", ""));
                    setTimeout(console.warn.bind(console, "%c ❶ Blog: %c https://oba.by", "color:white; background-color:#ff7aa4", ""));
                    setTimeout(console.warn.bind(console, "%c ❷ Blog: %c https://nai.dog", "color:white; background-color:#ff7aa4", ""));
                    setTimeout(console.warn.bind(console, "%c ❸ Blog: %c https://zhongxiaojie.com", "color:white; background-color:#ff7aa4", ""));
                    setTimeout(console.warn.bind(console, "%c ❹ Blog: %c https://h4ck.org.cn", "color:white; background-color:#ff7aa4", ""));
                    setTimeout(Log.bind(console, "%c W23-12 %c 你已打开控制台.", "color:white; background-color:#4f90d9", ""));

                    setTimeout(console.warn.bind(console, "%c S013-782 %c 你现在正处于监控中,不要干坏事哦.", "color:white; background-color:#d9534f", ""));
                }
                );
            </script>

至于怎么生成上面的 ascii 字符串,可以使用下面的两个链接:

https://patorjk.com/software/taag/

http://www.network-science.de/ascii/

把上面的代码找个 js 文件写进而去,在页面 header 里面引用即可(我直接将代码添加到了 wp 的页面小工具内)。实际效果:

当然也可以直接 F12 打开开发者工具查看具体效果。嘎嘎。

  •  

独立博客“中间平台“的多种形态

今天拿手机瞎逛,忽然发现了很多新博客。然后发现独立博客作者并没有比想象中少了,只是大家不太活跃,固定的在一些独立博客里面来回晃。

有一个六度理论就说。通过六个人你能接触到全球所有人,独立博客也是这样,通过评论区你能接触所有独立博客。我也有看到,博友圈,BlogWe,个站商店,博客志,博客圈导航,十年之约这一类的中间平台。这些平台也都是博友兴趣之余创作的。

中间平台加速了独立博客的流动,友圈也加速了这种流动,自从有了友圈Rss订阅者。我每次更新几分钟就会收到评论,但是这些都没有真正的自动化,将博客文章和博客本身Push出来,这里文章博客我指的是新文章新博客。

博客圈人不多。每天看来看去就是这帮博友,看多了人也会腻掉,发现新人就是一个问题。很多新人甚至写了很久博客,才意识到有一大批同类人群可以交流,所以使用中间平台为新博客导流是非常棒的选择。

四种思路中间平台思路

第一是搜索引擎,博客专门的搜索引擎,自动汇聚内容和博文,流量和用户内部互相消化,新文章和新博客自动蜘蛛收录。但是这种形式似乎使用者很难沉淀下来,毕竟用户量和内容量都不够。

第二种去中心化社区,通过中间平台api,将所有系统博客统一化,所有博客内容和评论直接出现在平台上,类似长毛象,博客互相联邦化,互相可以选择是否出现在对方的页面上,该页面汇聚该联邦站点文章和评论,形成一个个星球社区。

第三种自动化Rss博客广场,爬虫自动爬取博客和内容,根据网站性质,收录爬取新的博客和文章,直接通过系统处理,来推送内容到平台的专题列表内,这个效率最高,但是鉴于之前的一些争议,这个也是最不好实现的(协议方面),标准化实现最简单,协议实现最难。

第四种Ar社区,所有博客通过Ar生成固定的场景,博客以坐标节点来在整个ar里面,通过行走路线,走过坐标发现博客和内容,这个最异想天开,我最想见到这样的平台。

以上四种是我想到的,可以加速博客流动的方式,已经存在的导航,Rss推荐这种也是很棒的。

我对流动有一种天然的执着,之前做插件访客插件 然后做了@订阅插件 。当前的网站首页也是一个@评论和头像展示插件,开放式评论,每个头像都带源站超链接。然后我还是用了威严威语的@走心评论 ,也是一个开放式插件,每一个页面的主旨都是流动。

其中产品形态,都是我的想法,如果你有更好的,可以评论区几句,我觉得每一位博友应该都有自己喜欢博客中间平台,或者某种想象中完美的中间平台形态。

题外:目前我博客的所有插件和主题,如果大家有兴趣可以和我要压缩包,主题带板式数据开放,插件也可以随便使用。

  •  

使用Leafletjs实现足迹地图功能

我的博客上面挂着一个使用Leaflet实现的足迹地图功能,最近又给他添加了一些功能并且进行了一些美化。之前也有人问题这个怎么实现的,趁着刚折腾完来分享一下。

代码库的选择

早前一直想要做一个足迹的功能,像是国内的百度地图和阿里地图都有js的sdk,但是他们的sdk使用不简单,并且他们的地图只有国内的。后来了解过google map以及mapbox,但是都没有深入研究。后来看到博主水八口记使用了leaflet还比较简单,就使用这个库来实现了我的足迹功能。

地图图层

使用leaflet的一大好处是,你可以自由使用你想要的地图图层,对于符合Leaflet的地图瓦片地址我们是可以直接使用的,通常是类似这种格式的地址: https://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png,其中的{z}/{x}/{y}是必须要支持的,leaflet会在运行的时候替换具体的值,从而请求对应的放大级别(z,zoom), 对应坐标(x, y)的瓦片进行渲染。

一般使用cartocdn提供的openstreetmap的地图时,是可以直接使用的,但是我们如果想要使用mapbox地图或者其他地图供应商的时候,就需要借助插件了,可以在这个页面看看有没有Plugins - Leaflet - a JavaScript library for interactive maps

对于地图图层,leaflet是支持同时加载多个图层的,比如说我可以添加一层底图再添加一层天气卫星图。

我们这里先看一下如何创建一个地图并且设置我们的地图图层. 首先需要引入leaflet的css和js文件

1
2
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/>
<!-- js引入一定要放到css的后面 --> <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>

之后,在我们需要显示地图的位置放一个div元素,并且设置一个id,这样我们在后面的js代码中才能控制它:

1
<div id="footprintmap"></div>

同时我们可以通过css设置这个容器的宽度高度:

1
2
3
4
#footprintmap {
width: 100%;
 height: 180px;
}

这些做完之后就可以在javascript中去创建地图对象,并且给它添加地图图层了:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">

 //地图的版权声明,使用三方地图数据出于对版权的尊重最好加一下
      var cartodbAttribution = '&copy; <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors, &copy; <a href="https://carto.com/attribution" target="_blank">CARTO</a>';
      var map = L.map('map', {gestureHandling: true, minZoom: 1, maxZoom: 14}).setView([33.3007613,117.2345622], 4); //创建地图,设置最大最小放大级别,setView设置地图初始化时候的中心点坐标和放大级别
      map.zoomControl.setPosition('topright'); //设置放大控制按钮的位置
      map.createPane('labels');

      map.getPane('labels').style.zIndex = 650;

      map.getPane('labels').style.pointerEvents = 'none';

      L.tileLayer('https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png', {

    attribution: cartodbAttribution

}).addTo(map); //添加地图图层到map对象当中

</script>

添加足迹点到地图中

经过以上的步骤我们就可以在网页上展示一个地图了,而我们实现足迹功能一般会给我们去过的地点打上标记。一种方法是给去过的城市做一个蒙层,一种方式是加一些点标记。这里先看加点标记的方法。

标记在Leaflet中称为Marker, 我们可以使用以下代码添加默认的Market:

1
marker = new L.marker([33.3007613,117.2345622]).bindPopup("popup text").addTo(map);

效果如下:

在上面我们通过bindPopup来设置点击Marker之后弹出的内容,其中我们是可以设置HTML元素的,因此我们就可以显示图片或者超链接之类的内容了。

如果不喜欢这个默认的蓝色Marker,也可以替换为图片。比如我用如下的代码就设置类一个svg图片作为Market标记图:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
function colorMarker() {
  const svgTemplate = `
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" class="marker">
      <path fill-opacity=".25" d="M16 32s1.427-9.585 3.761-12.025c4.595-4.805 8.685-.99 8.685-.99s4.044 3.964-.526 8.743C25.514 30.245 16 32 16 32z"/>
      <path stroke="#fff" fill="#ff471a" d="M15.938 32S6 17.938 6 11.938C6 .125 15.938 0 15.938 0S26 .125 26 11.875C26 18.062 15.938 32 15.938 32zM16 6a4 4 0 100 8 4 4 0 000-8z"/>
    </svg>`;
  const icon = L.divIcon({
    className: "marker",
    html: svgTemplate,
    iconSize: [28, 28],
    iconAnchor: [12, 24],
    popupAnchor: [7, -16],
  });
  return icon;
}

marker = new L.marker([lat, lng], {
    icon: colorMarker(),
  }).bindPopup(popupText).addTo(map);

主要是在前面创建marker的时候传的这个icon,你也可以传普通的图片。

如果我们需要展示多个点的时候,我们可以把这些点的数据存储成一个json,并且把他作为一个JavaScript对象加载,再读取他把每个点添加到地图中。 我就创建了一个points.js的文件保存所有的点:

1
2
3
let points = [
    ["<b>北京</b><i>Beijing</i><a href='/2025-01-beijing/'><img src='https://img.isming.me/photo/IMG_20250101_133455.jpg' />北京游流水账</a>", 40.190632,116.412144],
    ["<b>广州</b><i>Guangzhou</i>", 23.1220615,113.3714803],];

内容大概如上:

1
2
<!--加载点数据这样我们在javascript环境中就可以拿到points这个数组-->
 <script type="text/javascript" src="/points.js"></script>

以上加载了点数据,通过下面的代码来读取并且添加点:

1
2
3
4
5
6
7
for (let i = 0; i < points.length; i++) {
//循环遍历所有点,并且保存到如下三个变量中
  const [popupText, lat, lng] = points[i];
  marker = new L.marker([lat, lng], {
    icon: colorMarker(),
  }).bindPopup(popupText).addTo(map);
}

到此为止就完成了足迹点功能的开发。

去过的区域图层开发

而我们要实现去过的城市标记,这个时候就不是一个一个的点了,我们可能给去过的城市添加遮罩,这个其实就是给地图上画一个新的图层。每一个城市本质上就是许多个点围成的多边形,我们可以使用Leaflet提供的polygon方法来绘制,但是我们需要给把每个城市的多边形的各个顶点找到并且组织成一个数组,工作量真的是巨大的。

这样的难题我们不是第一个遇到的,前人已经遇到并且帮我们解决了。在2015年就有了GeoJson这种用Json描述的地理空间数据交换格式,他支持描述点,线,多边形。而Leaflet对齐也有支持。因此,我们只需要找到我们所需要的城市的geojson数据的MultiPolygon或者Polygon数据,就可以在Leaflet中进行绘制了。

对于中国的数据,我们可以在阿里云的datev平台进行下载,你可以省份数据或者按照城市甚至更小的行政单位下载数据。对于国外的数据可以到github上面去查找,这里是一份国家数据: datasets/geo-countries: Country polygons as GeoJSON in a datapackage

对于我们下载的中国的geojson数据,因为比较详细,也就比较大,我们可以使用mapshaper这个工具来对数据进行一些处理,直接使用Simplify功能,使用它减少点的数量,从而减少我们的文件的大小。

按照geojson文件格式,我们对于多个城市需要组成一个类似如下的json:

1
2
3
4
5
6
{
"type": "FeatureCollection", features: [
{"type": "Feature", "geometry": {"type": "Polygon", "coordinates": [[[88.40590939643968,22.55522906690669],[88.36498482718275,22.494854169816982],[88.28898205570562,22.51497913551355],[88.2714429545955,22.55235407180718],[88.32990662496253,22.55235407180718],[88.36498482718275,22.60410398359836],[88.35913846014606,22.62997893949395],[88.38837029532957,22.62710394439444],[88.40590939643968,22.55522906690669]]]}},
...
]
}

对于这样的一个json对象,我们就可以直接使用Leaflet的geojson文件进行加载,代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function onEachFeature(feature, layer) { // does this feature have a property named popupContent?
 if (feature.properties && feature.properties.popupContent) {
 layer.bindPopup(feature.properties.popupContent); //从json文件中读取属性进行popup展示
 }
}

var geojson = L.geoJSON(areas, {
 onEachFeature: onEachFeature,
  style: function (geoJsonFeature) {
    return {
      color: '#ffcc80', //设置遮罩的颜色
      fillOpacity: 0.4, //设置透明度
      stroke: false, //是否要显示边缘线
    };
  }
}).addTo(map);

对于geojson我们也可以在properties中设置弹框的内容进行展示。

总结

到这里我们就完成了基于leaflet的一个足迹地图,既包括足迹点,也包括去过的城市的遮罩。而geojson和Leaflet的功能远远不止这些,感兴趣的可以去看相关文档。另外因为我使用的地图是openstreetmap的数据,关于中国领土有争议的部分标记不正确,这个不在我的解决能力范围之内,只能暂且使用,但是不代表本人观点。

参考资料:

  1. Tutorials - Leaflet - a JavaScript library for interactive maps
  2. https://tomickigrzegorz.github.io/leaflet-examples/
  3. GeoJSON - 维基百科,自由的百科全书
  4. DataV.GeoAtlas地理小工具系列

看完评论一下吧

  •  

DeepSeek本地部署以及使用体验

最近,国内一家名为DeepSeek的初创公司通过技术迭代与升级,推出了全新一代大模型“DeepSeek-V3”。这款大模型因其卓越的性能和易用性,迅速在AI爱好者中引起了广泛关注。更令人瞩目的是,DeepSeek R1版本直接免费开源,这一举动迅速在AI发烧友圈中传播开来,并迅速扩散到海外社交平台和技术论坛。海外网友对此纷纷表示赞叹,称其为AI领域的一大突破。

它的研发成本大概600万美金,不到openai的1%,各项性能指标更是和OpenAI-o1 模型不相上下,甚至做到了小部分的超越,关键是开源的,我们可以本地部署使用。

本地部署,我们可以通过Ollama来进行安装

Ollama 官方版:点击前往

Web UI 控制端【点击安装

安装命令

1.5B Qwen DeepSeek R1

ollama run deepseek-r1:1.5b

7B Qwen DeepSeek R1

ollama run deepseek-r1:7b

8B Llama DeepSeek R1

ollama run deepseek-r1:8b

14B Qwen DeepSeek R1

ollama run deepseek-r1:14b

32B Qwen DeepSeek R1

ollama run deepseek-r1:32b

70B Llama DeepSeek R1

ollama run deepseek-r1:70b

DeepSeek和chatgpt比较,我就本地部署deepseek的时候想了一个问题,比较一下确实能分出高低,deepseek马上猜出我的电脑配置,而chatgpt没有,虽然我的电脑售卖的时候是有好几种内存和显卡配置的,当然,我的问题最好写得更具体,当我就应该是不懂的那种:

问题:

我的电脑是Lenovo Legion R7000 2020,帮我推荐安装哪个deepaeek模型:

DeepSeek回答:

根据 Lenovo Legion R7000 2020 的硬件配置(通常是 16GB 内存 + GTX 1650/1660 Ti 显卡),建议选择较小的模型,因为较大的模型需要更多的显存和计算资源。以下是适合你电脑配置的推荐:

推荐选择:

  1. 1.5B Qwen DeepSeek R1
    • 模型较小,适合 16GB 内存和 GTX 1650/1660 Ti 级别的显卡。
    • 运行速度快,对硬件要求较低。
    • 命令:ollama run deepseek-r1:1.5b
  2. 7B Qwen DeepSeek R1
    • 如果你的显卡显存较大(如 6GB 以上),可以尝试 7B 模型。
    • 可能需要降低批处理大小(batch size)以避免显存不足。
    • 命令:ollama run deepseek-r1:7b
  3. 8B Llama DeepSeek R1
    • 类似于 7B 模型,适合显存较大的配置。
    • 命令:ollama run deepseek-r1:8b

不推荐选择:

  • 14B、32B、70B 模型
    这些模型对显存和计算资源要求非常高,通常需要 24GB 以上显存的高端显卡(如 RTX 3090、A100 等),不适合你的电脑配置。

总结:

如果你的显卡显存较小(如 4GB),建议选择 1.5B 模型;如果显存较大(6GB 以上),可以尝试 7B 或 8B 模型。运行前请确保安装了最新的显卡驱动,并关闭不必要的后台程序以释放资源。

chatgpt回答:

要选择适合你 Lenovo Legion R7000 2020 配置的本地 AI 模型,主要需要考虑你的计算机硬件配置,尤其是显卡(GPU)和内存(RAM)的性能。你提供的机器大致配置应该包括较强的处理能力,但具体能跑哪些模型,取决于内存和显卡性能。

通常来说,模型越大,占用的显存和内存就越多。如果你的电脑配备了高性能的显卡(例如 NVIDIA RTX 3060 或更高),并且有足够的内存(16GB 或更高),可以考虑使用较大的模型。以下是对比这些模型的建议:

1. 1.5B Qwen DeepSeek R1

  • 适用条件:这是一个相对较小的模型,对显卡和内存要求较低。基本上,几乎所有配置的电脑都可以运行它,特别适合资源有限的机器。

2. 7B Qwen DeepSeek R1

  • 适用条件:虽然较大一些,但如果你的电脑有较强的 GPU(比如 RTX 3060 及以上)和至少 16GB 内存,它是一个可以运行的模型。

3. 8B Llama DeepSeek R1

  • 适用条件:这个模型对显卡要求更高,可能需要更多的显存和更快的 GPU。如果你的电脑配备了强大的显卡和 16GB 以上的内存,可以考虑。

4. 14B Qwen DeepSeek R1

  • 适用条件:这个模型较大,通常需要更强的 GPU 和较大的内存(可能需要 24GB 或更高的显存)。适合高端配置的机器。

5. 32B Qwen DeepSeek R1

  • 适用条件:32B 的模型非常庞大,可能需要顶级显卡和至少 32GB 内存。一般来说,普通玩家的机器可能难以运行此类模型。

6. 70B Llama DeepSeek R1

  • 适用条件:这是一个极为庞大的模型,只有配备顶级硬件的机器(例如 A100 GPU 或等效硬件)才能够高效运行此类模型。普通游戏笔记本不适合运行如此大的模型。

综合建议:

  • 如果你有较好的 GPU(例如 RTX 3060 或更高)和 16GB 或更多内存,7B Qwen DeepSeek R18B Llama DeepSeek R1 会是比较合适的选择。
  • 如果你是低端显卡或内存较少的配置,选择 1.5B Qwen DeepSeek R1 会更为合适。

最终选择哪个模型,还是要依据你电脑的具体硬件配置来决定。如果你不确定具体的硬件要求,可以先尝试运行小模型,看是否能够稳定运行,再逐步增加模型的规模。

代码测试:

对我来说,更多的是在编程方面的应用,这也是为什么,本来ai可以帮助写作的这段期间,写作应该更简单更快,但我的博客更新率反而降低,因为我最近几乎都在用ai编程,忙得停不下来,最近又做了一套预约系统(客户需求),一个不精通编程的人,因为有了ai便有了希望。

目前利用ai编程,尤其是我这样的水平,很多时候需要丢一大堆代码来进行功能的添加,为的也是不想拆分一段段的代码去解释和修改,虽然ai也能给你答案,但是折腾起来挺费时费力,所以一开始就要想好全部需要的功能,一次性让ai都考虑在内,当然,如果你的系统太复杂,目前有些ai免费版输出的代码有字数限制。

根据我目前的使用心得,在deepaeek还没出来的时候,claude.ai的编程能力最强,但由于字数限制,有经常还得把代码搬到kimi.ai那边去继续修复,kimi.ai主要特点是输出内容比较长,但是编程能力相对会低一些,现在由于deepseek的出现,经过测试,输出内容好像比kimi.ai更长,编程能力和claude不相上下,我测试过一段mercadopago的支付,写出来的代码可用,说明编程能力还是可以的,虽然感觉过去和claude还是有一丁点差距,不过已经非常好了,至少是免费而且没有限制,真的狂喜。

我也看到过做中文文案的人的评测,说DeepSeek的中文能力比chatgpt强,语言组织上更适合中国人的思维,这点也是做自媒体文案的人的总结。

这几天因为deepseek太火,以至于受到海外的网络攻击,也因为访问量太大,各种卡顿,所以本地部署也是一个选择,经过测试,配置选择越大效果会越好。

  •  

榨干最后一点表达欲

之前一直在坚持写博客,到第三年的时候,终于开始有了所谓的「名气」和「回应」。虽然很漫长但是还是坚持下来了。去年12月开始,又把播客的事情做起来了,几乎做到了日更内容。

这两件事都遭到了「质疑」——你不可能每天都坚持写作、你不可能做到播客日更、要么这些不是你用AI制作的、要么就是你人「有问题」。好一个从问题上解决问题的思路。

跟一个同样在做播客的人聊起「更新频率」,在得知我们一周日更六期的时候,他首先确定这是「不可能」的事情,除非这个播客的后面是好几个创作团队的并发设定;于是我们又告诉对方,这个团队除了邀请来的嘉宾,就只有三个人,而且后期剪辑也只是一个人完成的;他仍然不相信,便开始怀疑我们创作的内容「有问题」;于是我们介绍了自己是从事什么行业,为什么会做播客以及为什么可以做到高产;他便站在「过来人」的视角,爹味浓郁地总结:「你们这样做播客是不行的,不能一开始就把内容都发了。」

这套行云流水的逻辑闭环,我在2022年坚持每日写作时,也常常见识到。

——《多数人无法理解得坏世界》

之前还能做到博客和播客两边不耽误,最近稍微缓了缓,优先保证了录制和剪辑播客,然后是看书,沉淀的思考给了写作,以至于按照这个层级下来,还有点点精力分给了答疑博客收到的私信,朋友圈就几乎很少发了,更别说其他那些社交软件了,完全没有更新的欲望。

想了下,如果按照圈层来说。博客和播客,是最外圈的,而朋友圈(我只有、且会随时删增保持100个微信好友)才是最内圈的。那该精装修的是外圈,还是内圈呢?

  •  

WordPress 极简主题 Dear v1.2.0

✇雅余
作者Jeff

独立博客至今仍是不少热爱分享的博主珍贵的自留地,会愿意投入精力去维护和滋养。通过博客,可以分享自己的专业知识、经验和见解,向读者提供有价值的信息,或展现魅力,或暗自陶醉。

来自读者的评论,有意义的互动,可能就是很多人坚持的原因。甚至有人提出,关闭了评论的博客,还叫博客吗?但总有利弊,开启评论意味着你需要投入更多的时间去回复和管理,抵抗 Spam 和无聊评论的骚扰,甚至引发言语攻击的事件。

所以,Dear 主题评论功能已增加,按需自取,哈哈。本次仅更新 WordPress 版本, Typecho 版本择日再改。

主要更新内容:

- 增加评论功能及样式(请在"设置">"评论"中关闭头像显示)
- 可选回复评论框跟随,默认禁用
- 部分样式优化

新版本请从主题发布页面获取 Github 链接:WordPress 版本

  •  

新年给博客迁新服

✨1/8日更新:3天AWS新服体验不佳,吃灰已久的Jetpack宕机监控功能3天下来跳了几次,已迁至阿里云港服。从 🇸🇬🇯🇵 再到 🇭🇰,博客站物理位置离自己更近了👏


博客重新上线时用的是Amazon Lightsail最低标准,配置是512MB内存 2vCPU,每月3刀,一个WordPress小博客站点够用了。用了一段时间有了折腾后发现不够用,就单单一次上传多个图片就能给整爆失联,得重启服务器恢复。后来干脆快照形式搬迁至1GB内存 2vCPU配置,每月5刀,用到现在没出现什么问题,期间亚马逊AWS还涨过一次价至7刀。

以上用的实例位置均在新加坡,期间有博友发现其无法畅通访问得挂梯子并告诉我(其实我自己用的网络环境中并没有遇到过,网络运营商处理这些在我看来有点玄学)。之后就心念着想换位置,理想位置是香港,毕竟是没有备案的最佳选择。还有一个想换的原因是用Bitnami栈打包的Apache服,怎么说呢,Bitnami非常好非常安全非常稳定,但对我来说太麻烦了,修改一些文件权限要整来整去,一些服务版本的更新还得大动干戈,就想换成原味。主要是自己的懒惰,就一直搁着。

新年嘛,就趁新年第一个周末给站点搬家。看了阿里云ECS和腾讯云CVM,最终选择了老东家亚马逊。亚马逊的EC2有港服,但没港服的Lightsail它更便宜!选了和原来一样的配置7刀/月,不同的是位置从新加坡换到了日本,离中国近一点哈哈,经过测试真的是快了一点~阿里云和腾讯云的轻量应用服务器也便宜且有港服,但当我看到“建站内容也是受限制的,出现违规域名会被封禁。”时总觉得会缺少点什么,虽然自己爱国守法,但还是算了,这些年使用过和正在使用的服全是外面的,也无所谓运营商玄学,就对搬回来这欲望并不是那么强烈。

周六上午就开好实例,用Debian12作服务器系统,习惯了Debian,很好。下午只需要旧服备份数据新服搭建环境后一气呵成。然而过程中出了一些状况,需要放下手头其他事,搁置了已经进行到一半的搬迁事宜。当时就连把域名解析回旧服ip从而恢复访问的操作都不想做,出现502 404 TIMED OUT之类已经无所谓了,因为儿子生病了。

周六当天儿子出现两次呕吐症状,第一次呕吐物比较少,里面有少许上午吃的水果。期间儿子还说过自己肚子痛痛,但我们仅凭他当时精神状态很正常,并就有没太多处理,只是揉揉肚子和各种无知的揣测原因。隔三四个小时后出现第二次呕吐,我们这时才意识到问题的严重性,并立马带他去医院,医生给的诊断结果是小儿病毒性肠炎。晚上儿子就出现发热症状,又是一个不眠夜。第二天还在发热,但属于低烧范围,已经不会再呕吐,也说肚子不痛痛了,状态也不错。

周日下午才有完全属于自己的时间接着去处理搬新服后续的事,算是比较顺利。出现问题是服务器莫名过载让网站无法访问,SSH也连接不上且持续很长时间,得重启服务器恢复。线索来源于“PHP message:Connection refused”,先排查插件发现W3TC所使用的缓存方式会导致此问题,Redis与Memcached都试过但问题依旧,干脆先停用,反正新服速度不错。病根应该是php,先搁置,等有空再处理~ //已解决,PHP权限问题

Lightsail真的很Light很轻量,CPU给压的死死的,便宜嘛,这货持续高负载就卡挂。属于突增型,就是说你平时使用CPU的利用率低于10%时(性能基准,实例配置不同基准百分比不同),能积累一种“能量”,当CPU利用率高于10%时,累积的“能量”就会消耗,如果持续高负载直至“能量”耗尽,CPU最大利用率就会压回10%,这就是为什么会挂掉的原因。以上是我对突增型服务器的理解,也罢,够用!

2025年了,看到大家都在写总结,晒清单,立新年Flag,由衷佩服大家的行动力,这是身为一个博主应该拥有的积极人生态度啊,反观自己真的是弱爆了。我属于是佛系,博客更新频率低,写的东西也属于肤浅的记录。时间是有的,陪小朋友、玩游戏、刷手机是我工作时间以外最放松的时候,所以不想“浪费”在写博文上。偶尔打开Follow看看大家写了啥,说真的点开订阅也成为另一种心理负担,因为每次点开后这么多的未读文章,每篇都想点进去瞄一眼,这时间就刷刷走了~

  •  

2024 – 2025 跨年博客

2025

按照惯例,每年这个时候我都会写一篇跨年博客来大谈特谈,今年是第十三年,能坚持这么长时间我很高兴。

首先要说的是时间过的实在是太快了,标题上已经是2025,内心却仍感觉是19 年的,好像covid 之后的日子都被偷走了,2024 一晃而过,2024 又好像从未来过。我关于页面的照片都已经超过了10张,真的过于可怕。

2024

先围绕着去年列的目标说一下

  • 体重65kg
  • 家庭出游两次以上
  • 拍下胶片,设备 M6 / 11663 / 11891
  • 不添置新的数码产品
  • 去五个国家
  • 不添置新的数码产品

上半年其实还做了很好的体重控制,明显感觉状态好不少,后半年状态下降,直接摆烂了,现在能感觉自己又回到了一摊烂肉的状态了,年初说的十分想要完成的小目标也是在这个目标的基础上,显然也泡汤了。

年初本来计划上带两家父母各出行一次,实际上一次都没有实现,只是给父母安排了一次上海的行程,本人并没有陪同,最近几年发现和父母的生活理念还是有很大的不同,有时候也会劝说一下,基本是无果,当然自己也不一定是对的,每个人都有自己的生活方式。

年初的时候想玩胶片机,综合考虑最后还是选择了宝丽来,很好,就是太贵,差不多拍了三十盒相纸,准备弃坑了,数码产品不但添置了,而且还没少更新,照例更新苹果,还买了理光,不过把富士卖的差不多了。

得益于深航随心飞和快线,今年又把大部份省会都逛了一遍,多年前为了实现去过全部省份强刷了一波,多年后再游故地,心态不同。

再就是生活其实发生了不少变化,因为现在业务不好做,办公地点再次降级,对我来说交通已经算是不太方便了,索性就开启半远程模式,偶尔会直接在家办公了。太太因为工作特殊性变得更加忙碌了,真的非常辛苦,感觉失去了很多快乐。猫因为一些原因寄养在有钱人家里了,算是家里混的最好的了。

接下来继承新的传统,每月选出一张代表。

一月,去了巴厘岛。
二月,去了新加坡。
三月,丽江,日照金山。
四月,去了胡志明市。
五月,无锡苏州,重游园林。
六月,青岛瑞吉。
七月,去了大阪。
八月,回了一趟农村。
九月,麦积山仿古。
十月,澳门city walk。
冬月,高才、美签,和香港关系紧密起来。
腊月,南京。

最近两年每到年底的时候都会有一种这一年什么都没干的感觉,靠着翻照片才能慢慢回忆起来自己干了什么,仔细一看,原来自己做了不少事情呢。去年我写到在大环境不是那么好的情况下发现自己还能积极去探索生活,今年貌似还能复用一下,但要说的是心态已经发生了不小的变化,对现在的生活感到疲倦,对未来的生活感到迷茫。

2025

本来想着新年计划多写一点,真正想写的时候发现又没那么大的劲头了,以前我都是活在当下,今年第一次有了长期主义的想法。收集了所有以前列出来未完成的目标,准备在新的一年完成,有些目标如今看来已是微不足道,但它们实打实是自己认真生活的见证,生活挺苦的,需要这些仪式感来点缀。

  • 体重65kg 2024
  • 不添置新的数码产品 2024
  • 家庭出游两次以上 2024
  • 精简生活 2021
  • 做菜 2020
  • 跑步十公里 2019
  • 学习语言 2018 2020
  • 去一次马尔代夫 – 出去走走 2015

新的坑

  • 尝试录播客
  • 纯远程工作
  • 开源项目再挣扎下

同时参考去年,继续列两个隐藏的小目标,希望明年的跨年博客的完成列表里可以出现它们的身影。

以及

写在最后

其实总结和展望早已写好,只是一直想在结尾再加几句,特意吃饱了饭才来写。这些年来,作为一个普通人,我的运气其实还算不错,虽然走过不少弯路,做出过一些错误的选择,但总体来说,生活并没有遇到太大的挫折,进展得还算顺利。当然,运气何尝不是实力的一种呢,不管怎样,还是要坚信明天会更好。

最后祝所有关注以及不关注我的朋友们新年新气象。

  •  

2024 年个人博客回顾

✇雅余
作者Jeff

捣腾

本年度共捣腾自己的博客主题6次,见“更新日志”。新年第一天全新改版,半年后首页又换回了原来的样式。当前这个主题从2017年开始使用,至今快7年,期间捣腾很多个版本,但主旋律还是“移除”、“简化”和“禁用”。虽然7年后样式没有太大的变化,但主题从1.5M精简至100多K,插件使用量从12个精简到2个。现在我可以安心的把精力放在别的事情上了。

 

克制

今年努力克制自己不捣鼓新应用/程序,成功逃过 Memos、TiddlyWiki、Calibre-web、Freshrss、Follow、CouchDB、NAS 等等对我的诱惑。明年我可能也不会尝试。太容易安装部署的 Docker 容器,眼花缭乱的功能,耗时,收益太少。爱做笔记的朋友们,今年应该换过不少笔记程序。所谓开源、离线、块编辑、白板、多维表、点对点、自托管、一键部署、全平台,确实强大,但很累人。

 

主题

自2023年底一个月发了3个主题(DearPaperWriting)之后,今年只发了一个新主题(Text Only),各个主题都进行了一次的版本更新。明年暂时只计划对 Dear 进行更新。感谢使用和支持的朋友们,感谢厚爱!

 

发文

今年文章发表量比去年多一倍,共62篇,但水文居多,很多都是拍照凑数。无心插柳,弄了个“独立博客自省问卷15题”,最终收集答卷 46 份,是年度最高评论数文章,89条评论(别笑,已知足)。写了三篇关于“纯文本生产力”的探讨,是年度最高阅读量文章,1万7千多阅读次数。我一般不在网络上吐槽,但“都是浮云”一文成为年度最多评论的纯图片文章。

共发布 62 篇文章,浏览最多的 10 篇文章如下:
值得拥有的纯文本生产力 (17,358)
再见 2023, 2024 笃志不倦 (11,058)
2024 龙年春节出游小结 (10,573)
微言雅语 @2024-01 (9,940)
我的几个小坚持 (8,054)
如何在Bing和Baidu屏蔽CSDN和知乎的搜索结果 (6,168)
日常山野漫步 Vol.5 之凤凰山 (6,006)
日常山野漫步之大镜山至香山湖 (5,962)
珠海母亲河前山河 (5,859)
纯文本生产力方案探讨 (5,458)

共收到 1740 条评论,评论最多的 10 篇文章如下:
独立博客自省问卷15题 (89)
再见 2023, 2024 笃志不倦 (80)
都是浮云 (73)
值得拥有的纯文本生产力 (70)
2024 龙年春节出游小结 (66)
我的几个小坚持 (54)
博客2024年的最后小迭代 (46)
游中山收音机博物馆 (44)
如何在Bing和Baidu屏蔽CSDN和知乎的搜索结果 (42)
《独立博客自省问卷15题》答卷收集 (41)

 

不足

就不吐槽自己了,心知肚明就好。

 

致敬

明年,希望自己在力所能及的范围内给中文博客圈作出更多一点点的贡献。致敬热爱分享,尊重知识产权,充满正能力的小伙伴们!@印记@陈仓颉@S@风清@1900@响石潭老师@夜未央@网友小宋@老何@ACEVS@粽叶加米,还有更多,不一一罗列。

2025,继续努力。

  •  

写在2025年新年之前

每年这个时候,差不多就要发布《写在新年之前》了。这是从世界末日那一年开始的记录,像是在记录真正遭受了世界末日后的平行世界,每一年都会发生什么。

据说,2012年的世界末日被玛雅人谱写在神谕之中,世界能躲过这一劫,是因为另一个平行世界的地球替代了那一刻的「世界」,于是从那一年开始,我们感觉到了时间的加速、错乱的记忆、奇怪的即视感。

虽然这是玩笑,但也多少有些魔幻现实,所以今年的《写在新年之前》,就用玛雅文明的「圣经」《波波尔·乌》的结构吧。从这一刻开始,魔幻现实主义就深深扎根在了拉丁美洲的土壤里。


创世

养狗也是一场巨大的个体实验

今年做出最大的决定,是养了一只柴犬。我们一直不考虑养狗的原因,是怕自己无法尽全责照顾这种「眼里只有对方」的宠物。决定养的那天,我就有意识地开始记录「发生了什么」。

狗和猫不同,猫没有眉毛肌肉,所以很难看出它想要实际表达的情感,但因为狗有这个区域的肌肉,它能给予主人的回应就要明确很多,喜怒哀乐都可以从它藏不住的眉毛、尾巴表达得淋漓精致。

正是因为这种时刻都能得到的全方位的回应,狗给人类提供的催产素介于猫和婴儿之间。催产素过量,带来的心理变化也非常明显,比如送狗去狗学校上学时,产生分离焦虑的竟然是我跟老婆两个成年人,躲在车上忍不住地偷偷抹眼泪。

催产素的影响是持续的,比如情绪稳定、攻击性降低、男性的责任感、女性的非冒险性,激素影响的身体机能都是为了「养育」这个主题。比如我真的在今年一整年,除了狗送去上学和寄养的一个半月,我每天都是准时准点地遛狗两次。

我小时候,短暂拥有过一段时间的狗,但很快它被送走了,我难过了很久,甚至要被送走的那天,我下午逃课回家,抱着狗哭了很久。成年后,决定养的这只狗,也是对童年那一刻的重新补偿吧。


@西安 童年的花园

接着童年的话题——人们会在成年之后,努力地复刻童年的那个花园,因为那是他最熟悉的,也是安全感的来源。

安全感缺失症,几乎都能回到「童年」寻找出苗头。童年就好比是一个从早玩到晚的花园,或许在里面种着一棵高大的树。每次玩时,都会被这棵树裸露在土壤外表的树根绊倒,但是并不妨碍这棵树在我们记忆里的模样。成年之后,我们开始重建这座花园,那棵常常绊倒自己的树,也成了熟悉和安全的一部分。

如果那棵树代表的是「父亲」这个符号,就解释了一些童年在父亲高压下长大的女孩子,在成年恋爱时,也会潜意识地寻找跟自己父亲类似的男性。

正是因为有这座花园存在,人们才有了「重建」的规划图——是要重新寻找那棵树、还是改成别的替代、或是亲手斩断那些盘根错节的根茎,让自己从束缚之中获得自由。

我必须承认,我拥有一个幸福童年,大部分时间我可以自己做决定。虽然父亲长期出差,但缺席的只是符号,而我用自己的「少年老成」填补了这个家庭缺失的符号,我既需要照顾自己,也需要时刻关注母亲的情绪。所以我逃到了「写作」,初中开始我把自己的想象力、攻击性和无法消解的情绪都变成了文字。

当我意识到,我需要重建那座花园时,我不想回到原本的样子。所以我开始寻找后天的父母、玩伴、亲密关系、甚至是那只我仍然记得名字和模样的小狗。


下界

@香港 权利的花园

接着花园的话题——人类追求的极致权利,是对自然的改造;但在这个过程中,他们又在寻找那些自然创造的、绝非人为的「怪胎」。

年初,陪老婆去了趟香港看苏打绿的演唱会。这和我多年前去过的「香港」变化了很多,这种变化不是物理上的,而是某种抽象的、但又肉眼可见的改变。我思考了很久,终于找到了那个再简单不过的东西——政治。

疫情三年,让所有人都确信一件事——原来政治离我们的生活并不遥远。距离2022年疫情解封,我们又过了2年,似乎人们已经忘记了那一刻。我恰好在2022年坚持写作,记录下了那时每天都在上演的荒诞、丑陋、政治、谎言、真相……

对,记忆是可以被篡改的,无论是个体对于记忆里「取向对自己更有利的部分」,还是被驯化出的集体潜意识。但个体的记忆越来越稀碎,人们就可以站在相对应的位置,指着虚假的「法典」,宣誓当初的历史「本就是」如何。

记忆固然不可信,但是历史就可信吗?


@重庆 Mayday

有的时候,历史比现实更残忍。你们还记得东航空难是什么时候吗?

马上要2025年了,我还是没能克服「恐飞」这件事情。当初一场大病,在经历了濒死体验之后,我突然开始恐惧坐飞机,2022年3月21日的空难,是我午睡突然惊醒,点开手机看到的突发新闻,紧接着老婆告诉我这件事,我一下子被全方位的恐惧裹挟。之后,就彻底恐飞了——我不是对飞行器不信任,更多是对「人」的不信任。

2023年去日本的时候,为了克服恐惧,吃了晕机药,感官被强制切断,对飞机的摇晃颠簸失去了感知——但是我老婆知道,她还是特地选择了ANA的航班,因为我是对「人」的不信任。

我依旧找不到治愈「恐飞」的办法,渐渐地,我也不觉得这是需要「治愈」的事情,它并不是疾病,只是大脑错误地将航司工作时参加过的安全培训、濒死体验时的无重力噩梦、东航空难、政治不信任纠缠结合,变成了一个几乎无法解决的心结,凝视着空无一物的深渊。

当深渊里什么都不存在时,那才是深渊最可怕的时刻,因为它里面可以是任何存在。


日出

@重庆 向上坠落

今年做了很多从未想过的新尝试,比如制作视频类的谈话节目、和脱口秀合作、开始创作播客。工作室也开掉员工只剩下三个人,最后发现其实就算是三个人,也搞定了以前所有的工作。

小时候有次理发,我现在还记得那个巷子里的理发店,老板是个跛脚的女人,我爸在她那里理了七、八年的头发。有一次,她帮我理发时,正在剃我后颈窝连到背上的汗毛,她对我爸说:「这个孩子,长大了也是个闲不下来的劳碌命。」

我爸当作玩笑在听,倒是我一直记得这句话。

果不其然,我很害怕「停下来」,害怕那种一眼能望到头的日子,像是身处深渊,眼睁睁看着那个光点越来越远。所以总是在折腾不同的事情,看上去有些三分钟热度,但总觉得它会不会在某一天成为那种、可以让人电流过脊般爽快的「callback」。

而停不下来的,就是写作这件事,时隔多年,我依旧觉得这才是我来这一世的目的。

我爸不相信这样的玄学,倒是我觉得或许这就是命。


@杭州 白日出没的月球

在剧本里,结局到来之前,会有一个叫做「灵魂暗夜」的时刻。往往这个时刻,角色们都会经历某一种「死亡」时刻。有角色为了主角的计划慷慨赴死,也有主角一直努力维系的关系就此终结。死亡带来的并不一定是「悲剧」,也有可能是真正的希望。

我很怕死,这种死不是肉体上的,而是精神上的荡然无存。所以我当初在反复阅读《美国众神》时,非常共情那种旧神被遗忘于世的恐惧。所以我一直在试图留下「什么」,当我留下的东西越多,它们渐渐在时间的规则之中形成了一个又一个的莫比乌斯。

这就是我会不停记录下来想法的原因,因为创作过程也可以看到变化过程。这也就是我之所以称「写作是一场自我悖驳的旅程」,因为三年前写的文字很有可能会在三年后因为经历不同而产生完全自我反对的观念。这也是我认为记录最为关键的过程,它是一个自观的过程,也是一个自我修正和不断认识自己的过程。

文字是有时间性的,且是永远无法被改变的单向规则;但是思考不是,它可以突破时间的规则,去回顾、去预判,可以回到几千年前的世界,也可以前往几百年后的未来。

但它又被固定在那个焦点之上,死亡的那一天则是重新开始的时刻,像是月亮被潮汐锁定在地球和太阳的规则之中。而人们又可以尽情地思考,在月球的背面,藏着怎样的幻想。


应许

@宁波 人类图腾

博客创作第三年,终于有了所谓的「流量」。

从今年年初开始,我其实一直在寻找「博客的意义」,它不过是我继续坚持写作的载体,我在任何一个地方都可以做到,但为什么一定要选择这个过时的互联网产物?

直到最近,我才意识到核心并不在于「坚持写作」这件事,因为它在哪里都可以完成,而博客的意义,是我可以和他人建立链接。人们很容易在逃避真实问题时,去纠结「题干」的对错性。比如,我说到写博客是为了让人看见自己,但这道题的题干并没有说「写博客不是为了自己」。这两者并不冲突,也并不是非黑即白的存在,或许有一天,你突然意识到你写博客确实是为了自己,但同时也希望被人看见。

承认这件事很难吗?其实很难,因为你还需要同时接受「没多少人看的」现实,从而被一个「我是为自己而写」的表象给包裹。

所以我才提出那个角度——如果你是为了自己而写,为什么一定要发表出来呢?

没错,这是个循环论证,特别是当人们夹在了「我为自己」「我为别人」「我希望被看见」的狭缝之中时,它们是彼此的最终解释权。

如果你现在还在纠结我说的结论是「错」的,那或许你得从最初的那个题干开始理解起——我有说过对与错这件事吗?


@重庆 三角座星云

我很多年前,写过一部年度小说《每个人,都是一团星云》,它是在绝望情绪中,写的全是错别字的意识流小说,写完结尾的那一天也吃了一顿寿喜烧。

其实那是一部告白小说,是完成上一轮五百日写作,送给她的作品。把一个充满死亡焦虑的自己,塞进一部小说里,充满了对她的「控诉」,我不希望我们彼此的关系靠得太近过于窒息,也不希望我失去轨迹逃逸她所在的星云。

那个时候我把自己比作是「卫星」,这么多年过去了,我觉得我和她彼此都是一枚恒星,在一望无际的宇宙,我们各自拥有一团独立系统的星云,将彼此的星云交错,他们共享着轨迹,但又不会互相吞并彼此的生活和个体。

我不知道现在也算不算是表白,这是我在有天夜里,拍下星空时,想到的关于那部小说的最终结局。

每个人都是拯救自己的神,但也是毁灭他人的地狱直到两个世界融合,变成「我们」,我们是彼此拯救的神,也是毁灭他们的地狱。


@宁波 感染

我不是个招人喜欢的人,无论是学生时代、还是进入职场之后,我永远是那个挑事和不服规则的人。所以我会较真「为什么」,从为什么要学习思想与品德,到为什么我完成了我的工作还要留下来假装和他们加班。

我很喜欢那些认为我脱离常识的人,因为他们对我的评价往往是他们能够找到最具有杀伤力、但对我而言毫无攻击性的用词。我不认为自己是特别的人,但我在进入某一个群体时,因为拒绝全盘接受群体的认知,而变成了那个特别存在的异教徒。

于是,我在这种脱离群体的方式里,也寻找到了另一些「异教徒」。

我不是个善于言辞的人,所以跟他们的交流方式会在最开始就说明白——我们彼此留言,有空再回复,在这种一来一回的存在着「时差」的问答之中,思绪爬满主轴,结出了我们谁都没有意料到的花与果。

很有幸认识你们。


一年到头,难得有一篇完全为自己而写的文章,也算是完成了每年对自己的承诺,毕竟又活过一年!

最后,还是老规矩:新年快乐!

在2024年1月1日就留在了灵感记录箱里的时间胶囊

  •