普通视图

Received yesterday — 2025年6月2日生活

自卑的遮羞布:不是被歧视,而是太渴望被看见

2025年6月2日 17:44

这世上最「不可理喻」的情绪之一,大概就是自卑。它不合理、不讲理、不通情达理,却能统治一个人的全部判断。自卑的情绪让人看世界的每一扇窗都染上一层灰,你说它不是病,它却能让人终日惶惶如丧家之犬;你说它是病,它却没有诊断标准、没有药,甚至很少有人愿意承认自己有。

自卑是怎样炼成的?从不被夸奖的童年开始,从「别人家的孩子」中走来,从老师偏心、父母沉默、社会冷漠中长大。它是一种无声无息的殖民,吞噬掉一个人对世界的信任,只剩下「我肯定哪里不够好」,和「他们一定在针对我」。

某部国际电影大片到了中国市场,更换了一张更本地化的海报——换了个更亲民的风格、更熟悉的角色安排,这在营销上的文化适配,因为看重该地区的市场,所以单独定制了海报,是种合情合理的商业行为。然而,总有人非要仰着头看这张海报,硬生生看出「歧视」的轮廓,说这是「你看不起我们中国人」,说这是「西方在羞辱我们审美」。这种逻辑就像在说:你要是对我一视同仁,就是不尊重差异;你要是考虑到我的文化,就是在区分我和「你们」,还是不尊重。归根结底,是无法被尊重的心理,不是别人的问题,而是自己连尊重自己都做不到。

自卑者眼中的世界,是一面永不干净的镜子。别人做什么,都会映照出他心中最不想面对的自己。


这不是对个体的羞辱,而是对一种普遍病态的描述。整个社会已经习惯了这种状态,并逐渐将自卑制度化,集体合理化:用民族主义包装,用「反歧视」化妆,用各种「我们也行」的鸡汤语录鼓起勇气,然后在评论区里疯狂寻找一点「我们是世界的中心」的证据,宛如一个对着镜子反复大喊「我很好看」的人,越喊越虚。

这种情绪被养得越来越大,以至于自己不能和它争辩。自己一旦指出「这可能不是歧视」,就会被按头成为「洗地狗」;一说「也许只是不同文化之间的差异」,就会被质问「你是不是已经不爱国了」。

那些说「你这样对我,是不是歧视我」的人,未必真的是在追问公平。更可能是他们活在一场长年累月的战栗中:怕被看不起,怕自己不够格,怕这世界不欢迎自己。怕到哪怕一句问候、一个海报的配色、一个模特的妆容都能激起体内那根名为「自卑」的神经末梢,瞬间绷紧,甚至引发抗议。你说他们敏感?他们会说自己「觉醒」了。

可是,一个真正自信的人,从不需要靠整顿全世界的措辞来安抚自己。


自卑是个有趣的怪物。它从不大声叫嚷,但会操控一个人的全部行为。它假装关心「尊重」,但骨子里是「怕」:怕自己配不上,怕自己被遗忘,怕别人看到自己的无能、失败、边缘身份。所以,它要把每一个无害的世界迹象都解读成「冒犯」。哪怕只是电影海报为了迎合东亚审美把角色换了个构图顺序,这都能成为「被歧视」的铁证。殊不知,这才是真正的殖民心态:默认别人必须无条件照顾自己的自我形象,否则就是罪人。

明明是商业设计策略,却要硬拗成文化压迫;明明是差异化市场判断,却要上升到文化冷暴力。这种行为,比被歧视更可悲——那是自我放逐,是一场披着某种「正确」外衣的精神内战。我们活在一个人人争当「受害者」的时代,在「我被冒犯了」的话语框架下,自卑被重新包装成正义,成为了某种精致利己主义的新出口。

若真感到尊严受损,请问:自己的尊严为何要靠一张电影宣传海报来维系?


我并不想指责那些因真实困境而感受到压迫的人。对,确实有结构性的歧视存在,确实有文化帝国主义的幽灵徘徊。但问题是,现在许多人的愤怒并非建立在实质的不公之上,而是建立在一种对「自我脆弱感」的过度补偿。这种补偿不仅不解决问题,反而制造更多认知失衡。

自卑者最大的悲哀,就是他们连「自己其实是自卑的」这件事都无法承认。他们会用「我这是觉醒」「我要捍卫身份认同」「我这是对抗殖民凝视」来包装那颗在童年创伤里夭折的自我。他们要通过全世界的「低头」来弥补那种始终没有从父母那里获得的注视。他们无法直面自己的伤口,就只能拼命让别人为自己的疼痛负责。

那些不断在外部寻求修补的人,往往是内在最空洞的。


心理学上有个经典概念叫「投射」,是说人会把内心无法接受的部分归因于外界:一个人如果极度自卑,就容易把别人的任何行为都解读为「看不起我」。这不只是个体心理防御机制,也是一种文化机制——我们整个语境已经习惯于通过放大「外部歧视」来掩盖「内部创伤」。

归根结底,我们害怕不是歧视本身,而是怕它是真的:怕真的没有被看见、没有被尊重、没有「赢」。所以才需要在每一次海外片方的市场操作中找出一点点「我们终于让他们低头了」的成就感。哪怕这「低头」其实只是他们想多卖几张票。

当然,自卑还有更高端的表达方式。它不再是那种「我不如人」的消极退缩,而是变成一种道德优越感的进攻:越说「你们被歧视了」,越能显得自己站在正义的高地,仿佛为弱者发声。可实际上不过是将自己的脆弱借道德之名转化成了武器。用一种委屈巴巴的愤怒,给自己制造一个随时可以站上道德台阶的舞台。

而这,也许才是真正令人悲哀的地方:我们不是真的要对抗歧视,我们只是太害怕面对自己一无是处的恐惧。


当代社交网络正好成为了这类人最完美的自我幻觉制造机。算法不喜欢真实,只喜欢激烈;它不会推送「自我成长」的慢条斯理,它只推送「我受到了压迫」的火药味。所以你看到一群人在为了「海报换场景」怒斥地域歧视,为了「翻译词汇偏差」炮轰文化傲慢,为了「默认用户角色形象」怒刷刻板标签。这是一种分裂的病态:一边要求「全球多元共融」,一边又要求「你必须按我喜欢的方式展示差异」,否则我就炸号、拉踩、集火。

这不是尊重差异,这是一种自我中心的文化控制欲。可惜,自卑的人听不进去这番话。因为他们的耳朵只为敌意而生,对理性是聋的。


我写这些,并不是要为某些西方文化产品洗白,也不是在批评某一特定的人,而是认为自己能对自卑这件事有更诚实的觉察。

有些伤口不能怪别人总在戳自己,只能怪自己从未疗愈它。

当一个人总觉得世界在冒犯他,其实是他自己在不断冒犯自己。因为他早已在心底认定了「我是不被爱的、不被接纳的、不够好的」——所以才要拼命找证据来证明别人也这么想。我们总以为自卑是羞怯,其实自卑最可怕的,是它让自己变得咄咄逼人、无法共情、不断宣判别人有罪。

那是一种戴着受害者面具的攻击性


自卑的力量如此强大,它让我们无法正视自己,只能一直在「他们怎么看我们」与「我们要他们怎么想我们」之间来回打转。一边喊着「做自己」,一边又急着让世界来证明「我没错」。

如果自卑是毒,那么真正的解药不是外界的承认,而是某种近乎反叛的自我和解:我可以不被喜欢、可以不被认同、可以不配合,也可以坦然承认「我就是不够强大,但我不会因为这点就去诅咒整个世界」。而不是将内心的空洞,涂上「被冒犯」的糖衣,强行喂给公众咽下。

自卑是没法通过「让别人尊重我」解决的,它只会在自己不再寻求他人注视的那一刻,才慢慢松手。

——然后自己才终于开始,成为一个自由的人。


如果真的想让别人尊重自己,先别总把别人看成敌人。不是所有的不一样都是歧视,有时它只是「不一样」而已。而不一样的世界,本来就不欠自己一致的温柔。

学会不再把全世界的无心之举当成恶意,是治好自卑的第一步。

有没有觉得,有时候我们太把自己当回事了?

我的设备插件(WordPress 插件) — 就爱重复造轮子

作者obaby
2025年6月2日 15:21

这个假期事情有点多,也就没回老家。主要是自己最近也不想回,好处就是有点时间可以折腾自己喜欢的东西。

说的更直接点就是有时间瞎折腾,不过这第一次的效果并不是很好,例如录的视频,mic声音太小的,只能强行网上拉。录视频的时候发现原来的录屏工具注册失败了,变成了未授权。ScreenRecorderpro 7.0在双4k屏上尝试录制,直接崩溃了,升级到8.0发现注册没处理好,有的地方没搞。

新版变成了64位的,懒得去修改二进制文件了,直接修改hosts屏蔽掉服务器校验:

__int64 __fastcall CheckSNOnLine(unsigned int a1, unsigned int a2)
{
  __int64 v2; // rdx
  __int64 v3; // rbx
  const WCHAR *v4; // rax
  const WCHAR *v5; // rax
  __int64 v6; // rdx
  __int64 v7; // rax
  __int64 WebContent; // rax
  __int64 v9; // rsi
  __int64 v10; // rdx
  __int64 v11; // rdx
  unsigned int vars44; // [rsp+44h] [rbp+44h]
  __int64 vars48; // [rsp+48h] [rbp+48h] BYREF
  __int64 vars50; // [rsp+50h] [rbp+50h] BYREF
  __int64 vars58; // [rsp+58h] [rbp+58h] BYREF
  __int64 vars60; // [rsp+60h] [rbp+60h] BYREF
  __int64 vars68; // [rsp+68h] [rbp+68h] BYREF
  __int64 vars70; // [rsp+70h] [rbp+70h] BYREF
  __int64 vars78; // [rsp+78h] [rbp+78h] BYREF
  int vars8C; // [rsp+8Ch] [rbp+8Ch] BYREF
  __int64 vars90; // [rsp+90h] [rbp+90h] BYREF
  __int64 vars98; // [rsp+98h] [rbp+98h] BYREF
  __int64 varsA0; // [rsp+A0h] [rbp+A0h] BYREF
  __int64 varsA8; // [rsp+A8h] [rbp+A8h] BYREF
  __int64 varsB0; // [rsp+B0h] [rbp+B0h] BYREF
  __int64 varsB8; // [rsp+B8h] [rbp+B8h] BYREF

  vars48 = 0;
  vars50 = 0;
  vars58 = 0;
  vars60 = 0;
  vars68 = 0;
  vars70 = 0;
  vars78 = 0;
  varsB8 = 0;
  varsB0 = 0;
  varsA8 = 0;
  varsA0 = 0;
  vars98 = 0;
  vars90 = 0;
  sub_7CDDB0(&varsA0);
  sub_7CC140(&varsB8, a1, a2);
  LOBYTE(v2) = 1;
  v3 = sub_59E6D0(&qword_59D078, v2);
  sub_59E980(v3, -2147483646);
  *(_DWORD *)(v3 + 44) = 131097;
  if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
  {
    sub_59F9E0(v3, &varsA8, L"LastTime");
    sub_59F9E0(v3, &varsB0, L"SN");
  }
  sub_59E940(v3);
  sub_434690(&vars78, varsB0);
  if ( !vars78 )
  {
    sub_59E980(v3, -2147483647);
    *(_DWORD *)(v3 + 44) = 131097;
    if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
    {
      sub_59F9E0(v3, &varsA8, L"LastTime");
      sub_59F9E0(v3, &varsB0, L"SN");
    }
    sub_59E940(v3);
  }
  sub_410F80(&vars70, L"*************:", varsA8);
  v4 = (const WCHAR *)sub_410B40(vars70);
  OutputDebugStringW(v4);
  sub_410F80(&vars68, L"--------------:", varsB0);
  v5 = (const WCHAR *)sub_410B40(vars68);
  OutputDebugStringW(v5);
  if ( (unsigned int)sub_411190(varsA8, varsA0) )
  {
    sub_434690(&vars60, varsB0);
    sub_40FF60(&varsB0, vars60);
    if ( varsB0 )
    {
      if ( (unsigned __int8)sub_7CB9B0() )
      {
        sub_7CC030(&vars58);
        sub_4110B0(&vars98, 3, L"http://gilisoft.com/webtools/livecheck/IsValidKey.php?key=", varsB0, vars58);
        sub_40F8B0(&vars90);
        if ( (unsigned int)sub_7CB9E0() )
        {
          sub_4106C0(&vars50, vars98, 0);
          v7 = sub_4105E0(vars50);
          WebContent = CURL_GetWebContent(v7, &vars8C);
          v9 = WebContent;
          if ( vars8C > 0 )
          {
            sub_410BA0(&vars90, WebContent);
            CURL_FreeBuffer(v9);
            sub_434690(&vars48, vars90);
            sub_40FF60(&vars90, vars48);
          }
        }
        else
        {
          sub_7CBA00(&vars90, vars98);
        }
        if ( (unsigned int)sub_411190(vars90, L"expired") )
        {
          *(_DWORD *)(v3 + 44) = 131103;
          if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
            sub_59F940(v3, L"LastTime", varsA0);
          sub_59E940(v3);
          LOBYTE(v11) = 1;
          (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v3 - 32LL))(v3, v11);
          vars44 = -1;
        }
        else
        {
          *(_DWORD *)(v3 + 44) = 131103;
          if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
            sub_59F940(v3, L"SN", &dword_7CE3DC);
          sub_59E940(v3);
          LOBYTE(v10) = 1;
          (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v3 - 32LL))(v3, v10);
          vars44 = 0;
        }
      }
      else
      {
        vars44 = -1;
      }
    }
    else
    {
      LOBYTE(v6) = 1;
      (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v3 - 32LL))(v3, v6);
      vars44 = 0;
    }
  }
  else
  {
    sub_40C4B0(v3);
    vars44 = -1;
  }
  sub_40F8B0(&vars48);
  sub_40F900(&vars50);
  sub_40F990(&vars58, 5);
  sub_40F990(&vars90, 6);
  return vars44;
}

反正,能用就ok拉:

今天上午,有点时间,有拿出上周搞的那个我的设备页面插件,这个东西其实最开始也是抄来的:

抄作业–我的设备

前端时间,看大家都更新了,开始基于post类型来做展示,每个设备都是个单页能回复评论,忘了在谁那里看的了。总觉得有些过去强大了,虽然也是个插件。

最终还是决定自己找个轮子,于是就有了这个东西,使用插件生成的页面:

https://h4ck.org.cn/my-devices

整体页面样式沿用原来的,也不用在主题自定义添加css中添加样式了。新建页面,插入short code即可:

# Baby Device Manager

一个功能强大的WordPress设备管理系统插件,支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。

## 功能特点

- 设备分组管理
  - 创建和管理设备分组
  - 自定义分组排序
  - 分组描述信息
- 设备管理
  - 添加/编辑/删除设备
  - 设备状态管理(在售、停售、已售出、维修中、已报废)
  - 设备图片和产品链接
  - 自定义设备排序
  - 设备描述信息
- 前端展示
  - 响应式布局
  - 按分组分类显示
  - 支持多种排序方式
  - 美观的界面设计
  - 支持自定义每行显示设备数量(1-6个)
- 其他功能
  - 图片管理:支持设备图片上传和显示
  - 产品链接:支持添加产品详情页链接
  - 状态跟踪:支持多种设备状态管理
  - 自定义排序:支持设备分组和设备的自定义排序

## 安装要求

- WordPress 5.0 或更高版本
- PHP 7.2 或更高版本
- MySQL 5.6 或更高版本

## 安装方法

1. 下载插件压缩包
2. 在WordPress后台进入"插件 > 安装插件"页面
3. 点击"上传插件"按钮,选择下载的压缩包
4. 安装完成后点击"启用插件"

## 使用方法

### 管理界面

1. 设备分组管理
   - 进入"设备管理 > 设备分组"
   - 添加新分组:填写分组名称、描述和排序值
   - 编辑现有分组:修改分组信息或删除分组
   - 排序值越小,显示越靠前

2. 设备管理
   - 进入"设备管理 > 添加设备"
   - 填写设备信息:
     - 设备名称
     - 所属分组
     - 设备描述
     - 设备状态
     - 设备图片URL
     - 产品链接
     - 排序值

### 前端显示

使用 shortcode 在页面或文章中显示设备列表:

1. 基本用法
```
【baby_devices】
```

2. 按分组显示
```
【baby_devices group="分组名称"】
```

3. 按状态显示
```
【baby_devices status="在售"】
```

4. 自定义排序
```
【baby_devices orderby="sort_order" order="ASC"】
```

5. 组合使用
```
【baby_devices group="厨房电器" status="在售" orderby="sort_order" order="ASC"】
```

6. 自定义每行显示数量
```
【baby_devices per_row="4"】
```

### Shortcode 参数说明

- `group`:按分组名称筛选
- `status`:按设备状态筛选
- `orderby`:排序字段
  - `sort_order`:按自定义排序(默认)
  - `created_at`:按创建时间
- `order`:排序方向
  - `ASC`:升序(默认)
  - `DESC`:降序
- `per_row`:每行显示设备数量(1-6个,默认:3)

### 设置

1. 在WordPress后台菜单中找到"设备管理 > 设置"
2. 设置每行显示设备数量(1-6个)
3. 点击"保存设置"按钮保存

## 注意事项

1. 首次启用插件时会自动创建必要的数据表
2. 删除插件时不会自动删除数据表,需要手动删除
3. 建议定期备份数据库
4. 图片URL需要是可访问的完整地址

## 更新日志

### 1.0.4
- 修复状态按钮样式问题
- 优化状态类名生成逻辑

### 1.0.3
- 添加新的设备状态选项
- 优化数据库表结构

### 1.0.2
- 更新数据库表结构
- 优化设备状态显示

### 1.0.1
- 添加设备显示设置功能
- 支持自定义每行显示设备数量

### 1.0.0
- 初始版本发布
- 支持设备分组管理
- 支持设备信息管理
- 支持自定义排序
- 支持前端展示

## 技术支持

如有问题或建议,请访问:
- 官方网站:https://h4ck.org.cn
- 问题反馈:https://h4ck.org.cn/contact

## 作者

- obaby
- 网站:https://h4ck.org.cn

## 许可证

GPL v2 或更高版本

需要使用英文的括号替换中文的方括号【】

系统截图:

项目地址:

GitHub – obaby/Baby-Device-Manager: 一个功能强大的WordPress设备管理系统插件,支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。

插件zip包下载:

https://www.123912.com/s/ucY7Vv-iwAAA?提取码:PjEH

https://www.123865.com/s/ucY7Vv-iwAAA?提取码:PjEH

 

The post 我的设备插件(WordPress 插件) — 就爱重复造轮子 appeared first on obaby@mars.

还是孩子的我们

作者obaby
2025年6月2日 12:02

平淡无奇的一个假期,竟然包含了端午和儿童节。长大了以后,似乎对所有的节日都失去了兴趣,也没了期待。没当节日来临,似乎也没什么不同,平平无奇的一天。甚至,连宝子报的兴趣班都不曾停课,俨然也仅仅是个周末而已。

周六报的小记者活动有个非遗传承体验的活动,为了参加活动,钢琴课就请假了。去过很多地方,看过很多东西之后,有时候忽然觉得,几乎所有地方都有非遗,似乎所有的地方的非遗竟然都有那么一丝丝的相似。只不过是换了个地方,换了个名字,仅此而已。

这几年,非遗传承以及旅游变得更加的热闹了。所有的地方都在振兴旅游业,也算是好事吧,有钱了,很多之前濒临灭绝的东西也就得以传承了。

这个吉祥物,我也不知道是个鸽鸽还是个海鸥,无处不在。

签到的时候,给了个序号42,说到时候按照序号体验。实际上还是天真了,很多地方直接已经开始有人在体验了。于是带着宝子去排队,这大姐漫不经心的样子,就那么几个孩子都能让别人给插队,最后实在忍不住了,说了她两句。

包个粽子,我让她站好,结果她就在边上看啊看,人家小朋友直接挤进去了,她也不吱声,真是让人恨的牙根痒痒。说她让她排好队的时候,还有家长看我。

其他的体验活动也基本都是先到先得,带着她到处跑,总算是体验了几项,剩下的她也不感兴趣了。

毛笔字感觉写的比我强点,毕竟之前没写过。

木版年画,就是刷漆,然后简单的印一下。

还有画脸谱,等过去的时候脸谱已经没了。月饼模子做月饼,等过去的时候也没了。最后就这样了,至于剪纸,他说不想剪直接没去。

最后还有小记者的才有表演,到时也有点意思

手机拍的照片非常不清楚,回来之后才发现手机壳的镜头那里花了。想着之前抛光玻璃,直接抛光一下,效果还是蛮不错的:手机壳-1

下午,还是照例的网球课。第二天带宝子去练球,发现之前去的网球馆关门了。

发球机什么的都搬走了,里面完全空掉了。大众点评找了个场地,匹克球场,买了体验券之后到了才发现那个匹克球是运动的名字,不是叫匹克的球场。

不过打电话的时候说他们今天休息,所以网球场也空着,就直接又转到了网球场。也算是歪打正着了。

下午从窗外传来广播声音:非洲老鼠,泰国人妖,……男变女,女变男,老太太瞬间返老还童……

这东西,有很神奇了,这几个东西是怎么扯到一起的?第一个没啥兴趣,后面两个在国内也玩不了啊,没尺度看不着,大尺度演不了。

晚上去公园,果然看到了之前的老相识,上次在公园表演的时候就是他们。最后卖什么纳米眼镜的时候我就走了。

不过表演的东西跟上次还是有区别的:

喷火,吹气球,硬气功弯钢筋,独轮车,蟒蛇等等。到时有些意思,不过这次没卖那些东西,让打赏,于是我打赏了30。后来又卖陀螺,宝子让买,又10块钱买了个陀螺,然后就陆续散场了。

其实,儿童节我也收到礼物了。

希望大家都能像孩子一样简单快乐,永葆童心。

而我,还是那个幼稚而又无聊的我。

The post 还是孩子的我们 appeared first on obaby@mars.

狡诈的资本家

作者海河
2025年6月2日 12:30

之前扫地机器人换新,机器发回半个月,告诉我一切正常不符合换新要求,我说哪里正常了,一月丢好几次地图,还总自己中途退出,结果人家说他们检测没问题,其实吧,确实也没太大问题,我就是买了个只换不修服务,不把它用了会感觉亏了,保险公司让把机器送科沃斯售后,我心想你这不是找刺激吗,送售后,没毛病也能诊断出毛病,不出所料,当天就检测结束,主板故障、下视感应器故障,维修报价1250,拿着检测单去找保险公司,二话不说答应换新了,所以我又多了一台新的扫地机,商量把它装x家,他说他家里人都懒,不会有功夫清理,好吧,只能挂闲鱼9折出了。

大家遇到只换不修之类的服务有被拒绝的,一定不要接受原路退回,寄给厂家检测,肯定一堆毛病。哈哈,又学到了。

Received before yesterday生活

光吞万象,挺好,挺好

2025年6月1日 20:35

儿童节,哈哈哈,童心未泯,我还想过节。上午看书,翻了会儿史铁生写的《秋天的怀念》还有《合欢树》,虽然字数不多,但读下来总觉得心头几多压抑,有一种子欲养而亲不待的感觉,莫名几多伤感。于是出门,走到文殊院。虽然由于端午节,这里人人人,但只要迈过文殊院的门槛,正面的八个字“欢迎回家,心灵家园”,便会有一种无形的力量让你缓下来,静下来,停下来,定下来。

IMG_20250601_130247.jpg

又看到了这副著名的对联,见了边做,做了便放下……不过停下来关注的人真不多。大家匆匆忙忙的见着菩萨就拜,或许这样心里才能踏实吧。确实,这慈眉善目的菩萨真的看着非常法相庄严。恍惚间,又觉得应该是无我相,无人相,无众生相,无寿者相,那么这一尊尊佛像又是什么像?当下困顿,继而又哈哈大笑,看来我还没有放下,怎么还在想啊,了了有何不了?

IMG_20250601_130547.jpg

今天第一次看到这四个字“诸佛欢喜”,一股喜悦之情油然而生。这段时间,真的是各种情绪走马灯似的来来回回,互相较劲,虽说可以静静的观察情绪的流淌,但是身在情绪中,便是情绪人,总有许多的喜怒哀乐堵在心头。看到“诸佛欢喜”突然有一种拨开乌云见日月的感觉,当我们以欢喜心去审视各种情绪流动的时候,各种情绪,一笑了之,估计会是不一样的滋味吧。

IMG_20250601_131119.jpg

于是乎,想到了“古今多少事,都付笑谈中”,似乎在庙门前的麒麟,也是在哈哈大笑。嘿,越看越像是在笑,哈哈哈哈哈哈。想打了苏东坡与佛印关于一坨屎的故事,或许因为心中有笑声吧,所以看到麒麟也是在笑,如此如此。继而,有一种空虚自然的感觉,似乎一束光,照进了心底,然后不断的扩大再扩大,直到整个心田都是明亮的,犹如白昼,温暖而滋润。继而,又哈哈哈大笑。

IMG_20250601_131241.jpg

转头,看到“光吞万象”四个字,似乎心底那束光又在发生着变化。照亮了心田,吞没了心田,弥散到全身,穿透这臭皮囊,与世间的阳光合二为一,这一刻,人也是通透的,似乎有形,似乎无形,似乎悬浮在空中,似乎站立在大地,似乎没有了重量,似乎没有了生命,似乎就是这万千微尘组成的幻像,似乎就是这灼灼日光映照的斑点。有还是无,我是谁,我在哪儿,闭目,睁眼,心头一颤。

IMG_20250601_131032.jpg

大殿里面,巨大的经筒悬空,满眼的文字,但却没有一个字进到心底,心里却涌现出“嗡嘛呢叭咪吽”六字真言。似乎我仰望的是蓝天白云,云背后有着如如不动的老神仙,老神仙也在念诵着“嗡嘛呢叭咪吽”。似乎这经筒就是一条天路,走着走着,可以听到狮子吼,可以在每一个当下心境透彻的御风而行,似乎在与老神仙一切同频,喜悦和平,自自然,万事万物,终究归一。

IMG_20250601_131344.jpg

文殊院外面有一面墙,写着“南无阿弥陀佛”,其中“无”显得那么醒目。再次想到无我相,无人相,无众生相,无寿者相。诸相非相,一切法无我,应无所住而生其心。此刻,码着文字,端详着“无”,仿佛一切文字都显得那么的干瘪,经常想到不立文字,直指人心这几个字,是啊,这暇满人身,这般若波罗蜜多,又岂是文字所能承载?一声棒喝,喝茶去,一声怒吼,码文字。哈哈哈,如此如此。

IMG_20250601_130030.jpg

走出文殊院,红墙,幽深。一只可爱的熊猫把思绪拉回到了现实,瞧,还是人间美好吧。长叹了一口气,似乎吐尽了这是是非非的污浊,缓慢的移动着步伐,来来往往的行人,匆匆忙忙的外卖员,疾驰而过小汽车,一切都在充满力量的滚滚向前。大家在规则下卖力的蠕动着,爬呀爬呀,长大,吐丝,成茧,破茧,成蝶,死寂……循环往复的新陈代谢,确也是精彩纷呈。嘿,微尘,你去哪儿?咱能休息会么?

IMG_20250601_125353.jpg

路边,花盆,有一棵树,干枯。以往看到的时候,我会想这树真可怜,再不浇水,都要干枯死掉了。而此刻,我却没有这样的想法,反而静静地走过,那一瞬间想,挺好,早死早超生,反正都是微尘,重新再去循环便是,管他是树,是石头,是花,是鸟,无所谓啦。走远,放下这棵树,继续专注的走着走着。一切和我有关,一切和我无关,一切就是我,一切不是我,哈哈哈,疯了,挺好,挺好。

IMG_20250528_193531.jpg

苹果Carplay 自定义壁纸实现逻辑分析

作者obaby
2025年6月1日 16:02

虽然在开车的时候,多数时间不会停留在carplay的桌面。然而,当第一次切进来的时候显示的那个桌面背景图片,着实不怎么喜欢。于是就想着能够换掉这个壁纸。

网上搜了一下,基本都是一年前的文章,或者说最新的文章都是一年前的。这就比较尴尬了。
而至于实现工具和方法,到处都是抄来抄去的文章,第一步基本都是安装巨魔助手,Troll app,https://trollstore.app
这是一个越狱的应用商店。通过这个越狱的商店安装AirWall,在air wall里面设置壁纸。
https://onejailbreak.com/blog/airwall/


这一切看起来似乎完美,但是,这个troll store app 最高支持到ios 17,我现在的18没有越狱,也不想越狱。那么又该怎么搞呢?


自然是自签名,目前爱思助手之类的貌似不支持普通的appstore账号签名安装了。
不过可以通过下面的工具,签名应用然后通过爱思助手安装。

Sideloadly Download iOS 18.3+ | Install IPA Without Revoke

Esign iPA download and install using Sideloaly App.
Download Esign IPA:
First, download the Esign IPA file for your PC.
Download Esign iPA file.
Install Sideloadly:
Sideloadly is the tool we’ll use to install Esign on your iOS device.
If you don’t have Sideloadly yet, download and install Sideloadly app on your PC(Windows or Mac).
Connect Your Device:
Connect your iPhone or iPad to your computer using a USB cable.
Open Sideloadly:
Launch the Sideloadly application on your computer.
Select the IPA File:
In Sideloadly, click on the IPA icon to select the Esign IPA file you downloaded earlier.
Sign the IPA File:
Enter your Apple ID and password when prompted. This step is necessary for signing the IPA file.
Start Installation:
Click the Start button in Sideloadly to begin the installation process.
Sideloadly will sign the Esign IPA file and install it on your iOS device.
Check Your Home Screen:
Once the process is complete, you’ll find the Esign app icon on your home screen.
Then go to Settings App → General → Profiles & Device Management → Find the Esign app profile and trust it.
You can now use Esign to sign and install other IPA files directly on your device.

然而,签名安装之后却发现了另外一个问题,那就是卡在了加载界面。一直在获取目录,后面就进行不下去了。

上网搜了一下,好无进展,都是说什么连接carplay之后在设置,然而,这就是句废话。连上了也没什么用。
不过,这个app体积不大,直接拉出来。扔到hopper里面看下实现逻辑,也并不复杂。
直接通过目录来获取的当前壁纸,同样替换壁纸也是直接写入文件实现的。


看F5之后的代码就更直观了。


导出代码,直接扔给cursor,让cursor根据f5代码拆分重构代码。

现在代码逻辑就明朗了,更换壁纸的方法主要在AirawWallpaper.m中:

#pragma mark - Helper Methods

- (void)checkingPath {
    // 检查壁纸路径
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *basePath = @"/var/mobile/Containers/Data/Application/";
    
    // 检查是否有权限访问
    if (![fileManager isWritableFileAtPath:basePath]) {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"权限错误"
                                                                      message:@"无法访问系统目录,请确保设备已越狱并授予了正确的权限。"
                                                               preferredStyle:UIAlertControllerStyleAlert];
        [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]];
        [self presentViewController:alert animated:YES completion:nil];
        return;
    }
    
    NSError *error = nil;
    NSArray *contents = [fileManager contentsOfDirectoryAtPath:basePath error:&error];
    if (error) {
        NSLog(@"Error reading directory: %@", error);
        return;
    }
    
    NSMutableArray *validPaths = [NSMutableArray array];
    for (NSString *path in contents) {
        if ([path containsString:@"com.apple.CarPlayApp.wallpaper-images"]) {
            NSString *fullPath = [basePath stringByAppendingPathComponent:path];
            BOOL isDirectory;
            if ([fileManager fileExistsAtPath:fullPath isDirectory:&isDirectory] && isDirectory) {
                [validPaths addObject:path];
            }
        }
    }
    
    if (validPaths.count > 0) {
        self.FullCache = [basePath stringByAppendingPathComponent:validPaths[0]];
        [self.tableView reloadData];
    } else {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"错误"
                                                                      message:@"未找到 CarPlay 壁纸目录,请确保已正确安装 CarPlay 应用。"
                                                               preferredStyle:UIAlertControllerStyleAlert];
        [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]];
        [self presentViewController:alert animated:YES completion:nil];
    }
}

当然,上面这段代码的错误提示是我让cursor加上的。原来的并没有这段,这个是f5的代码:

int ___30-[AirawWallpaper checkingPath]_block_invoke(int arg0) {
    r31 = r31 - 0xc0;
    saved_fp = r29;
    stack[-8] = r30;
    var_80 = arg0;
    var_18 = [[NSFileManager defaultManager] retain];
    r0 = [var_18 enumeratorAtPath:@"/var/mobile/Containers/Data/Application/"];
    r29 = &saved_fp;
    var_20 = [r0 retain];
    var_28 = [@"" retain];
    do {
            r0 = [var_20 nextObject];
            r29 = r29;
            r0 = [r0 retain];
            r8 = var_28;
            var_28 = r0;
            [r8 release];
            if (r0 == 0x0) {
                break;
            }
            if ([var_28 rangeOfString:@"com.apple.CarPlayApp.wallpaper-images"] == 0x7fffffffffffffff) {
                continue;
            }
            r0 = [@"/var/mobile/Containers/Data/Application/" stringByAppendingPathComponent:var_28];
            r29 = r29;
            [var_18 fileExistsAtPath:[r0 retain] isDirectory:r29 - 0x29];
            if ((var_29 & 0x1) != 0x0) {
                    [*(var_80 + 0x20) addObject:var_28];
            }
            objc_storeStrong(r29 - 0x48, 0x0);
    } while (true);
    r11 = *(var_80 + 0x28);
    *(&var_78 + 0x10) = 0x100007ae0;
    *(&var_78 + 0x18) = 0x100014200;
    *(&var_78 + 0x20) = [*(var_80 + 0x30) retain];
    *(&var_78 + 0x28) = [*(var_80 + 0x20) retain];
    dispatch_async(r11, &var_78);
    objc_storeStrong(&var_78 + 0x28, 0x0);
    objc_storeStrong(&var_78 + 0x20, 0x0);
    objc_storeStrong(r29 - 0x28, 0x0);
    objc_storeStrong(r29 - 0x20, 0x0);
    r0 = objc_storeStrong(r29 - 0x18, 0x0);
    return r0;
}

不过现在,也能看出问题出在什么地方了。/var/mobile/Containers/Data/Application/这个目录,普通的app是没有足够的全项访问的。需要申请特殊的权限,直接让cursor创建权限申请的Entitlements:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <!-- 基本权限 -->
    <key>application-identifier</key>
    <string>49U329UV5Q.by.oba.airwall</string>
    
    <key>com.apple.developer.team-identifier</key>
    <string>49U329UV5Q</string>
    
    <key>get-task-allow</key>
    <true/>
    
    <key>keychain-access-groups</key>
    <array>
        <string>49U329UV5Q.*</string>
        <string>com.apple.token</string>
    </array>
    
    <!-- 容器访问权限 (私有API) -->
    <key>com.apple.private.security.container-manager</key>
    <true/>
    
    <key>com.apple.private.security.disk-device-access</key>
    <true/>
    
    <key>com.apple.private.security.system-container</key>
    <true/>
    
    <!-- 文件系统完全访问 -->
    <key>com.apple.private.security.no-container</key>
    <true/>
    
    <key>com.apple.private.security.no-sandbox</key>
    <true/>
    
    <!-- TCC绕过权限 -->
    <key>com.apple.private.tcc.allow</key>
    <array>
        <string>kTCCServiceSystemPolicyAllFiles</string>
        <string>kTCCServiceSystemPolicyDesktopFolder</string>
        <string>kTCCServiceSystemPolicyDocumentsFolder</string>
        <string>kTCCServiceSystemPolicyDownloadsFolder</string>
        <string>kTCCServiceAppleEvents</string>
    </array>
    
    <!-- 根权限访问 -->
    <key>com.apple.private.security.storage.SystemPolicyAllFiles</key>
    <true/>
    
    <!-- 平台应用权限 -->
    <key>platform-application</key>
    <true/>
    
    <!-- 跳过验证 -->
    <key>com.apple.private.skip-library-validation</key>
    <true/>
    
    <!-- 任务访问权限 -->
    <key>task_for_pid-allow</key>
    <true/>
    
    <!-- 进程调试权限 -->
    <key>com.apple.system-task-ports</key>
    <true/>
    
    <!-- 网络权限 -->
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.network.server</key>
    <true/>
</dict>
</plist>

既然添加了自定义的权限,那么使用这些签名工具就没办法写入权限文件了,需要自己来实现签名,具体的实现方法可以参考:
iOS 签名杂谈(一):https://h4ck.org.cn/2020/06/7112
iOS 签名杂谈(二): https://h4ck.org.cn/2020/06/7130

虽然之前做个一个签名的图形界面工具,但是引入了一个库不支持arm架构,也懒得再更新了。现在就只能创建签名脚本签名了,来回修改多次之后,让cursor创建了一个自签名脚本,sign_with_args.sh。通过这个东西就可以快速签名文件了。

签名脚本代码:

#!/bin/bash

# 变量声明(无默认值)
MOBILEPROVISION=""
APP_PATH=""
CERTIFICATE=""
BUNDLE_ID=""
TEAM_ID=""
DEVICE_UDID=""
ENTITLEMENTS_FILE=""  # 新增:自定义 Entitlements 文件路径

# 显示帮助信息
show_help() {
    echo "用法: $0 [选项]"
    echo "选项:"
    echo "  -p, --provision    mobileprovision文件路径 (必需)"
    echo "  -a, --app-path     应用路径 (必需)"
    echo "  -c, --certificate  证书名称 (必需)"
    echo "  -b, --bundle-id    Bundle ID (必需)"
    echo "  -t, --team-id      Team ID (必需)"
    echo "  -d, --device-udid  设备UDID (必需)"
    echo "  -e, --entitlements Entitlements文件路径 (可选,默认从mobileprovision提取)"
    echo "  -h, --help         显示此帮助信息"
    exit 0
}

# 检查必需参数
check_required_params() {
    local missing=0
    if [ -z "$MOBILEPROVISION" ]; then
        echo "错误: 缺少 mobileprovision 文件路径 (-p)"
        missing=1
    fi
    if [ -z "$APP_PATH" ]; then
        echo "错误: 缺少应用路径 (-a)"
        missing=1
    fi
    if [ -z "$CERTIFICATE" ]; then
        echo "错误: 缺少证书名称 (-c)"
        missing=1
    fi
    if [ -z "$BUNDLE_ID" ]; then
        echo "错误: 缺少 Bundle ID (-b)"
        missing=1
    fi
    if [ -z "$TEAM_ID" ]; then
        echo "错误: 缺少 Team ID (-t)"
        missing=1
    fi
    if [ -z "$DEVICE_UDID" ]; then
        echo "错误: 缺少设备 UDID (-d)"
        missing=1
    fi
    if [ $missing -eq 1 ]; then
        echo "请使用 -h 或 --help 查看帮助信息"
        exit 1
    fi
}

# 解析命令行参数
while [[ $# -gt 0 ]]; do
    case $1 in
        -p|--provision)
            MOBILEPROVISION="$2"
            shift 2
            ;;
        -a|--app-path)
            APP_PATH="$2"
            shift 2
            ;;
        -c|--certificate)
            CERTIFICATE="$2"
            shift 2
            ;;
        -b|--bundle-id)
            BUNDLE_ID="$2"
            shift 2
            ;;
        -t|--team-id)
            TEAM_ID="$2"
            shift 2
            ;;
        -d|--device-udid)
            DEVICE_UDID="$2"
            shift 2
            ;;
        -e|--entitlements)
            ENTITLEMENTS_FILE="$2"
            shift 2
            ;;
        -h|--help)
            show_help
            ;;
        *)
            echo "未知选项: $1"
            show_help
            ;;
    esac
done

# 检查必需参数
check_required_params

# 清理函数
cleanup() {
    echo "清理临时文件..."
    rm -f temp_entitlements.plist
}

# 错误处理
handle_error() {
    echo "错误: $1"
    cleanup
    exit 1
}

# 检查文件是否存在
if [ ! -f "$MOBILEPROVISION" ]; then
    handle_error "mobileprovision 文件不存在: $MOBILEPROVISION"
fi

# 检查目录是否存在
if [ ! -d "$APP_PATH" ]; then
    handle_error "应用目录不存在: $APP_PATH"
fi

# 如果提供了自定义 Entitlements 文件,检查其是否存在
if [ ! -z "$ENTITLEMENTS_FILE" ] && [ ! -f "$ENTITLEMENTS_FILE" ]; then
    handle_error "Entitlements 文件不存在: $ENTITLEMENTS_FILE"
fi

# 验证配置文件
echo "验证配置文件..."
PROFILE_INFO=$(security cms -D -i "$MOBILEPROVISION")
if [ $? -ne 0 ]; then
    handle_error "配置文件无效"
fi

# 提取信息
echo "正在从 mobileprovision 提取信息..."
PROFILE_TEAM_ID=$(echo "$PROFILE_INFO" | plutil -extract TeamIdentifier.0 raw -)
PROFILE_APP_ID=$(echo "$PROFILE_INFO" | plutil -extract Entitlements.application-identifier raw -)
PROFILE_EXPIRATION=$(echo "$PROFILE_INFO" | plutil -extract ExpirationDate raw -)

echo "Profile Team ID: $PROFILE_TEAM_ID"
echo "Profile Application ID: $PROFILE_APP_ID"
echo "Profile Expiration: $PROFILE_EXPIRATION"

# 验证 Team ID
if [ "$PROFILE_TEAM_ID" != "$TEAM_ID" ]; then
    echo "警告: Team ID 不匹配"
    echo "Profile中的: $PROFILE_TEAM_ID"
    echo "设置的: $TEAM_ID"
    handle_error "请确保使用正确的 mobileprovision 文件"
fi

# 验证设备 UDID
echo "验证设备 UDID..."
if ! security cms -D -i "$MOBILEPROVISION" | grep -A 20 ProvisionedDevices | grep -q "$DEVICE_UDID"; then
    echo "错误: 设备 UDID $DEVICE_UDID 未包含在 provisioning profile 中"
    echo "包含的设备:"
    security cms -D -i "$MOBILEPROVISION" | grep -A 20 ProvisionedDevices
    handle_error "设备未授权"
fi
echo "设备 UDID 验证通过: $DEVICE_UDID"

# 设置完整的 Bundle ID
FULL_BUNDLE_ID="$PROFILE_APP_ID"
echo "使用 Bundle ID: $FULL_BUNDLE_ID"

# 清理旧的签名
echo "清理旧的签名..."
rm -rf "$APP_PATH/_CodeSignature" 2>/dev/null

# 复制 mobileprovision 并设置权限
echo "复制 mobileprovision..."
cp "$MOBILEPROVISION" "$APP_PATH/embedded.mobileprovision"
chmod 644 "$APP_PATH/embedded.mobileprovision"

# 处理 Entitlements
if [ ! -z "$ENTITLEMENTS_FILE" ]; then
    echo "使用自定义 Entitlements 文件: $ENTITLEMENTS_FILE"
    cp "$ENTITLEMENTS_FILE" temp_entitlements.plist
else
    echo "从 mobileprovision 提取 Entitlements..."
    security cms -D -i "$MOBILEPROVISION" | plutil -extract Entitlements xml1 -o - - > temp_entitlements.plist
fi

# 显示 entitlements 内容
echo "Entitlements 内容:"
plutil -p temp_entitlements.plist

# 设置正确的文件权限
echo "设置文件权限..."
chmod -R 755 "$APP_PATH"
find "$APP_PATH" -type f -exec chmod 644 {} \;
find "$APP_PATH" -name "*.dylib" -exec chmod 755 {} \;
[ -f "$APP_PATH/AirWall" ] && chmod 755 "$APP_PATH/AirWall"
[ -f "$APP_PATH/AirWallHelper" ] && chmod 755 "$APP_PATH/AirWallHelper"
[ -f "$APP_PATH/trollstorehelper" ] && chmod 755 "$APP_PATH/trollstorehelper"

# 移除空文件(特别是0字节的PNG文件)
echo "移除空文件..."
find "$APP_PATH" -type f -size 0 -delete
echo "已移除空文件"

# 修正Info.plist中的Bundle ID
echo "修正Info.plist中的Bundle ID..."
plutil -replace CFBundleIdentifier -string "$PROFILE_APP_ID" "$APP_PATH/Info.plist"
echo "Bundle ID已设置为: $(plutil -extract CFBundleIdentifier raw "$APP_PATH/Info.plist")"

# 对可执行文件进行签名
echo "对可执行文件进行签名..."
if [ -f "$APP_PATH/AirWallHelper" ]; then
    echo "签名 AirWallHelper..."
    codesign -f -s "$CERTIFICATE" --entitlements temp_entitlements.plist "$APP_PATH/AirWallHelper" || handle_error "AirWallHelper 签名失败"
fi

if [ -f "$APP_PATH/trollstorehelper" ]; then
    echo "签名 trollstorehelper..."
    codesign -f -s "$CERTIFICATE" --entitlements temp_entitlements.plist "$APP_PATH/trollstorehelper" || handle_error "trollstorehelper 签名失败"
fi

# 对所有的 frameworks 和 dylibs 进行签名
echo "签名 frameworks 和 dylibs..."
find "$APP_PATH" -name "*.framework" -o -name "*.dylib" | while read -r file; do
    echo "签名: $file"
    codesign -f -s "$CERTIFICATE" "$file" || handle_error "Framework/dylib 签名失败: $file"
done

# 对整个应用进行签名
echo "对整个应用进行签名..."
codesign -f -s "$CERTIFICATE" --entitlements temp_entitlements.plist --deep "$APP_PATH" || handle_error "应用签名失败"

# 验证签名
echo "验证签名..."
codesign -vv -d "$APP_PATH"

# 检查_CodeSignature目录
echo "检查_CodeSignature目录..."
if [ -d "$APP_PATH/_CodeSignature" ]; then
    echo "✓ _CodeSignature 目录存在"
    ls -la "$APP_PATH/_CodeSignature/"
else
    echo "⚠  _CodeSignature 目录不存在,这可能导致安装失败"
fi

# 显示更多签名信息
echo "显示详细签名信息..."
codesign -d --entitlements :- "$APP_PATH"

# 验证所有签名
echo "验证所有签名..."
if codesign --verify --deep --strict --verbose=4 "$APP_PATH"; then
    echo "✓ 严格验证通过"
else
    echo "⚠  严格验证失败,但基本签名可能仍然有效"
fi

# 清理临时文件
cleanup

# 重新打包
echo "重新打包..."
rm -f signed_AirWall.ipa
zip -qry signed_AirWall.ipa Payload

echo "签名完成!"

 

然而,在测试的时候发现com.apple.private私有权限,签名之后安装全部被拒绝了。那么,也就是说目前是没办法在非越狱系统访问这个文件的,自然也就没法更改壁纸。

原来是想把代码开源的,结果上传之后把自己的证书也放进去了。所以就没发开园啦,主要原理也说了,结论就是,目前不越狱是没办法修改carplay的壁纸的,所以可以不用尝试了。

附视频链接:

The post 苹果Carplay 自定义壁纸实现逻辑分析 appeared first on obaby@mars.

《跳出幼教看幼教》出版了

2025年6月1日 09:16
    
    两天前,我收到了有复旦大学出版社新出版的《跳出幼教看幼教》书籍,这是我在去年年底前写就了的新作。
    在这本书的扉页上,有这样一段话:“作者直面当今我国幼儿教育的理念与实践,站在一个中国学者的立场,从国家意志和利益出发,从宏观、中观、微观时序等视角‘跳出幼教看幼教’,对我国幼儿教育出现的某些不理想状态提出了质疑,并从历史、现实到未来,从理论到实践,梳理了我国幼儿教育应然的走向,为的是正本清源,为的是让我国的幼儿教育事业能得以更为理想地发展”。
    在这本书的封底上,有这样我自己写的话:“我虽然也带着欣赏的眼光看待异文化中的幼儿教育,但是我的立场必须是中国人的立场,之所以要‘跳出幼教看幼教’,就是不能只站位在幼儿教育的小圈子里打转,就是要有系统思维和全局观念,就是要明白幼儿教育的理念和实践必须服从于意识形态,要与优秀文化传统、社会信仰、政治制度、经济发展、现实生活等密切相关,而非取决于普世哲学”。
    从这两段话中,大致可以猜度出这本书应该写了一些什么了。

已无力吐槽邮政EMS

2025年5月31日 21:22

临近节日,公司发放了不少节日慰问品,但我不在公司,于是让公司帮邮寄到家。由于我们公司合作快递使用的邮政EMS,这些东西也自然使用了邮政EMS,这就是噩梦的开端。

第一次邮寄了3件水果,本来就是同城邮寄,竟然花费了3天,并且还是我通过投诉途径才找到快递的。

通过快递单号查询,只显示“派送异常”,还说“地址错误或是电话无法接通,将再次进行投递”,虽然也能查询到快递员的电话,但这个快递员的电话能打通但始终无人接听,无奈只能打11183进行投诉。反映了情况之后,有人打电话给我说,快递给我放菜鸟驿站了,自己去找找,轻描淡写一句像没事一般。去菜鸟驿站凭自己完全找不到,只得让老板帮忙查询,最后在犄角旮旯里找到,并且我的这快递是没有入菜鸟系统的,所以我也收不到提示信息,更无从找起。而邮政将快递丢到菜鸟后,竟然显示“派送异常”,只能说邮政快递NB!

后面公司又寄了一些东西,依然是邮政EMS,结果可想而知,不得已继续通过投诉的方式找快递,虽然我知道邮政可能悄悄的又把我的快递扔到菜鸟驿站了,但无电话告知、无短信提醒,查询快递单号始终提示“派送异常”,这就不得不让人恼火!

如果我不知道快递单号,恐怕我都不知道会有我的EMS快递,因为我接收不到任何收件通知,只能自己主动去查询才能知晓。

邮政作为快递行业的老大,投送快递随意放第三方快递存放点,并且不通知收件人,已严重违反《快递暂行条例》。可能邮政作为行业老大,不在乎这些,他可以作为规矩的制定者,也可能是规矩的践踏者。《快递暂行条例》第26条明确说了:经营快递业务的企业应当将快件投递到约定的收件地址、收件人或者收件人指定的代收人,并告知收件人或者代收人当面验收。收件人或者代收人有权当面验收。

不再空军!

作者Gmc
2025年5月31日 21:37

本来打算去商业钓场破除空军的魔咒,虽然要交门票,但起码池塘里面是有鱼的,而且也知道里面是什么鱼,基本上不太可能空军了。但从网上看到说“假饵无论如何干不过真饵”,于是我果断买了小物竿,尝试一下用真饵的体验如何!

实际上在写这篇博客前已经钓了五六次了,尤其是五一假期没离开深圳,找了个新的钓点连着钓了3天,没有空军,属于是一次性钓爽了,所以想分享一下自己的心得体会,那么分别从鱼竿、线组和鱼饵等角度来说吧。

鱼竿

买第一根鱼竿的时候没有研究太久,只想着趁着下一个周末到来前拿到鱼竿尽快破除空军的魔咒::weibo:dog10::

于是大致看了一眼后,先入手了一根1.8米的小物竿,前期还不想投入太多,买的仿kokoe小蛙那款,54元入手(正品240元,实在是下不去手),37调性,用下来感觉偏46了,钓小鱼也挺有手感的,就是做工一般。

然后又觉得1.8米的竿子不够长,因为我去的钓点(还是那个河道的入海口)会退潮,于是又入手一根2.1米的,看到小红书上一个博主推荐的小品牌,到手价才47元,做工还挺好的,调性写的37,但实际偏28,好处是提鱼上岸挺果断的。::weibo:doge::

现在又觉得2.1米的竿子还是不太够用,想入手一根2.7米的,甚至还想来一根3.6米的。于是我又仔细研究了一番,决定再入手一根2.7米的竿子,后续可以视情况再买一根3.6米的溪流竿,基本上就到此为止了,长度足以覆盖我目前能去到的小池塘和河流了。

总的来说,小物竿这个类别主要关注调性、外观、收纳长度等参数。其中调性说白了就是竿子的软硬程度,比如19调性就硬邦邦,46调性就偏软了,软的钓小鱼很有手感,它在挣扎的过程中会通过鱼竿传导到手中感受到振动,这种感觉会很愉悦。硬的鱼竿则反之,因为小鱼的体量不足以带来太多振动,所以手感一般,优点是回鱼快。::weibo:dog13::

至于材质,普通的碳素材质足以应对了,除非硬要上大号钩子博巨物,不然基本不存在断竿的情况。

线组

买了鱼竿就要配线组,不然肯定是钓不了,新手期老老实实买成品线组就好了,一般根据竿子长度购买,2.1米的竿子就买2.1米的线组,这样就可以提竿、抓钩、上饵,一气呵成。

我个人认为在小物这个领域里,线组中最重要的零件是鱼钩,钩子大了小鱼吃不进去的,买成品线组最容易踩的坑也是这个。我的经验是选用新半月、0.8号的秋田狐或者0.1/0.5号的袖钩。我偏好袖钩,不容易脱钩,也好挂饵。

再就是浮漂,因为有不少人入坑是为了颜值嘛,所以浮漂肯定会选可可爱爱的那种,但我个人觉得最实用的还得是三星漂或者七星漂,理由是它足够灵敏,便于钓手更好抓住时机刺鱼。::weibo:dog6::

饵料

在饵料这一块稍微踩了点坑,先是傻傻的买了所谓的面筋饵,说是附钩性好,然而实际体验并不好,钩子小了不好挂。然后买了钓鱼佬所说的老三样混合版,附钩性也不好。后面发现有专门的小物饵料,但是真的贵,只要加上“小物”两个字的东西,价格都能翻一倍。

后面又仔细研究了一下,看到有推荐自己配比的,把经典的野战蓝鲫磨细一些,再加上拉丝粉,这样附钩性会好一些。我思来想去还是觉得太麻烦了,于是先后买了钓鱼王的地狱猫和龙王恨的野战蓝鲫青春版,试完之后还是野战蓝鲫青春版好用,味道小一些(用完饵料容易洗净手上的味道),附钩性也好一些。本人实战测试下来,诱鱼效果也很好,常见的鱼种应该通杀了,主要是小鱼也不挑,7元一包300g,能用好久。

小结

鱼竿样式买喜欢的就行,调性什么的可以不用在乎,因为在第一次上鱼前你完全不会有任何概念。至于长度,可以先找找附近是否有合适的钓点,根据这个来选择鱼竿的长度,我个人建议至少1.8米或以上。

线组建议用三星漂和七星漂的,带子线夹的那种,再买好常用的绑好子线的钩子,这样可以随时根据作钓情况换上合适的钩子。

饵料的话,可以买小物饵,如果想经济一些就买野战蓝鲫青春版,另外还可以买点红虫颗粒打窝。

总之,这么多次钓鱼感受下来,这个活动对于我们这种城市打工人来说真的非常好,往那儿一坐,忘却了所有的烦心事,脑子里想的都是鱼儿什么时候咬钩,所以特别能够缓解压力,每一次都是意犹未尽,期待着下一杆上条更大的鱼。

IMG_20250531_213408(1).jpg

好大一棵树

2025年5月31日 15:09

端午第一天,天气清凉~周四下午去了趟四医院九江院区,成都市心理健康中心,颇有感触。不像有些医院单调冷峻的风格,也没有那种绝对整齐的格式化风格,而是显得亲近自然,不像是在医院,也不像是在家里,更像是到了一个游乐场,到了一个会客厅,让你有一种放松闲适的感觉。

IMG_20250528_162840.jpg

护士站摆放着许许多多漂亮的玩偶,瞧,蜡笔小新,还有蓝胖子,孩子们的小伙伴都聚在这里,一个欢乐的大家族。还有世界名画,还有古代建筑,还有小老虎,还有一只写着“任性”的大熊猫。想必在这里住院的患者,都有着一颗蓝色的心灵,宁静温暖而又充满力量,希望得到大家的关注与友情。

IMG_20250528_162827.jpg

在走廊的一侧,有一棵树,发现生命的力量与美。树根,代表你从哪里来;大地,代表你现在的生活;树干,代表你的才能;树枝,代表希望与梦想;树叶,代表对很重要的人物;果实,代表你生命中获得的礼物。不由得想到了一首歌,“好大一棵树,绿色的祝福,你的胸怀在蓝天,深情藏沃土。”

IMG_20250528_163203.jpg

走廊的墙上,挂着许多画作,有一些是患者画的。其中一幅吸引了我,画面简单而又悠远,无有边际。悬崖,大海,小路,远山,绿草……还有天空,云彩……闭目,一种寂寥的感觉袭上心头,寂兮廖兮,独立而不改,周行而不殆,这不就是道么?大地回归大地,自然回归自然,一切刚刚好。

IMG_20250528_163148.jpg

窗户旁,有一个置物架,上面空空,下面挂着一个牌子,写了“留白”两个字。此刻脑海中浮现出“人鱼”,这部雷米的小说,一部关注女性成长治愈,残酷又温情的小说。仿佛我正坐在下水道里,内心始终有一种奇怪的感觉。似乎我过去、现在、将来一直都属于这里,突然一种压抑感填塞了大脑。

IMG_20250528_163221.jpg

在阴暗的下水道的劲头,我使劲的探出头来。瞧,府南边上等待捕鱼的鸟儿,牢牢抓住绳索,静静观察水流,一动不动,形容枯槁,面如死灰。耳畔又响起了歌声,“好大一棵树,任你狂风呼。绿叶中留下多少故事,有乐也有苦。欢乐你不笑,痛苦你不哭,撒给大地多少绿荫,那是爱的音符。

IMG_20250516_144422.jpg

用trae编程

作者郑永
2025年5月31日 11:13

trae西班牙语里是带来的意思,想买专业版,点击链接居然显示所在地区买不了,有钱都不赚吗?

所以最近一直在用免费版,里面有最新的claude 4 sonnet,编程非常强悍。

之前用trae速度很快,最近需要排队,而且排队有时候都有100多位,所以只能等。

之前以为这排队是因为很多人在用,于是在考虑人夜深人静的时候用,但发现也一样,我在想,难道他们在睡觉的时候也在给ai自动发送编程任务,所以不管什么时候,都会排队了。

这和ai编程的初衷有点吻合,就是你直接说,他帮你做,你喝完咖啡的功夫他就帮你写好了。

可我偏偏就是使劲的问个不停,马不停蹄,感觉自己还是很忙。

这不,现在多了个排队,你不得不喝咖啡等了,好像突然变得轻松起来了,虽然刚开始嫌他慢,但我发现这是不是变相在帮我放慢脚步,解放双手,因为我现在懒得写代码了,感觉写出来也没有ai写得好,这个排队就看作是给对方时间做。

我之前觉得自己做完就不用再写了,但没想到我以后可能得天天更新功能,就是后期维护,时不时的有人提出建议,你就要跟进,所以我会一直用这个ai工具维护代码,而且不用很累,我只要和我的代码团队(ai)交流即可,吩咐它写代码并检验,这就是我日后要做的事情。

本文完。

Word与WPS将两页打印到一页上操作体验

作者William
2025年5月30日 22:30
在日常办公中,双页打印是提升效率、节约纸张的常用功能。那么,如何将两页或多页打印到一页上呢?我分别使用Word和WPS来实现想要的打印需求,意外发现这两款办公软件在这个基础功能上还是存在一些体验差异,主要体现在打印预览上面,WPS能够即时显示实际打印效果,易用性更胜一筹。

初中上私立还是公立

作者Loekman
2025年5月30日 10:47

最近几天挺烦恼的,大娃今年上初中,眼下已经开始报名了,家里那位想要孩子上私立中学,优点是自己操心少一点、学校学习抓的牢,升学率高;缺点是离家远、要住宿、学费贵(5-6万/年)、孩子在学校情况不易掌握。

我么更倾向于读公立,离家近(就在家门口),义务教育学费便宜(当然后面应该有培训班,也要几万一年),可以时刻关注孩子动向(青春期容易叛逆),升学率虽然比不上私立,但如果能进重点班,那还是非常不错的;缺点么学习家长自己抓,要参加校外补习,分班考试进入重点班才有盼头。

上海again

2025年5月30日 10:18

去年年初回国刚途经上海,年底又来了,因为机票便宜,也正好顺便弥补遗憾——去东方明珠。因为上次约了我十几年未见的大学同学,所以本来这次没想约人,但就是这么机缘巧合,豆哥大学乐团的朋友们小小聚了聚,意想不到的开心。就是这么正好,我跟豆哥异地大学,最后同学们倒是“殊途同归”。

上海集锦
集锦

看着“奄奄一息”的豆哥,我知道这天的东方明珠旋转餐厅是去不成了,便提前给坡坡做了心理建设。坡坡很懂事,理解了我的“遗憾更有故事”说法,并表示长大后赚钱了再带我们去。我在劝说她的过程中也意识到自己的成长——不再纠结于不可能的事情,而是着眼于未来。

遗憾更有故事,遗憾也超快被弥补了哈哈!快给我的超绝行动力点赞!总而言之言而总之,玩得很尽心——斥巨资把三个球全玩了,眺望了上海的白天和夜晚,在旋转餐厅大快朵颐,还走了空中栈道(除了豆哥),简直太完美了!

东方明珠
到此一游照

以下仍是故事几则,毕竟流水账每次都一样,还是记录些印象深刻的小事更值得。

这次来上海主要是弥补遗憾的,所以并未待太久,确实也不好意思压榨跟父母团聚的时间。因为目标明确,所以我直接订了外滩的亚朵,虽然整体设施没有上次世博园好,但体验却大不相同。主要原因就在于地段。话说世博园那边真的挺冷清的,天气也灰蒙蒙的,所以上次的上海行之后我留下了这样的结论——

……这次近距离重新接触了解上海之后,我又犹豫了,机会确实多,但压力也是真的大。朋友说,如果你想要拥有事业的同时兼顾家庭,那么上海远远不及日本。
……
特别是回了福州以后,我第一次以定居的角度对比审视两座城市的差异,最后发现答案其实早就有了,那就是我们选择定居神户的理由。二线城市的慢生活,进可攻退可守。不求大富大贵,只求小富则安。

可这次的体感截然不同,果然还是市中心的魅力加成吗!到哪里都超级方便,天气好,人不多,生活气息浓郁,也比想象的干净,整个就是对上海重拾信心了哈!

接着说一下社交距离。因为在日本待久了,其实对路人是比较冷淡疏离的。不过因为我性格本就如此,豆哥又社恐,所以我俩都挺适应。回国后,在我们自己的家乡福州那没话说,就是感觉都是老乡,所以聊聊天正常。但是在上海就觉得很神奇了,在电梯里会有人跟你搭话,还不是一对一那种,是好多家一起聊,大家都能凑几句,蛮好玩的。坡坡刚开始还很不习惯,毕竟她遗传豆哥的性格多一些,但终归小孩,还是很喜欢热闹的,自己也开始巴拉巴拉讲起来。可能也因为在日本,我们聊天都说中文,周围日本人本来就不咋反应,再听个外语想反应都反应不来,所以我们都是默默低声聊天或者不聊。但在中国可就不同啦,其他人听到坡坡奶声奶气地提问,也会加入我们的聊天里来。坡坡虽然看起来小脸一红有点害羞,但是离开人群后又会激动地跟我说起刚才的事,可见她还是喜欢聊天的。我的基因在逐渐占据上风!

可能也正是因为更加紧密的社交距离,我们安心地收下了酒店前台送的圣诞礼物,和在酒店电梯里一个漂亮小姐姐送给坡坡的大草莓。草莓摊就在酒店门口,但考虑到我们待得不久,怕吃不完坏掉,也没有空余肚子了(每次回国都这样,幸福),所以就没买。没想到在电梯里人挤人的时候,一个小姐姐看到可爱小坡,就把手上的草莓送给她了。坡坡抬头问我可以吗,我说可以,记得谢谢姐姐,她便开心地道谢收下。小姐姐也很开心地说了不用谢,感觉整个梯厢都充满了甜甜的味道。

最后一个故事仍是跟社交距离有点关系,有个路人阿姨帮聚会的我们拍合照。豆哥乐团的学弟很给力,找了个很有格调的餐厅。餐厅离外滩不远,听我们说晚上要去东方明珠吃饭,所以大家就边聊天边陪我们慢慢逛过去。坡坡率先走不动,我背了一会儿就睡着了。于是朋友提议在外滩的露天卡座坐下休息喝咖啡。我们大聊特聊,还不忘拍照,毕竟天时地利人和。朋友拿出相机以自拍的方式留影,边上有个阿姨实在看不下去了,主动走上来说帮我们拍。我们非常高兴,阿姨反而有点脾气,操着上海普通话调整我们的姿势,还自己选了角度和构图,横向竖向都拍了好几张。我有点子理解为什么会有外地人说上海人排外了,我觉得是方言和表达的锅。其实我心里特别谢谢这位阿姨,因为她不仅帮忙了,还提供了专业的帮助。但是那种劲儿劲儿的感觉,年轻的我很容易误解为她不愿意帮忙嫌麻烦。这可能有点像东亚父母对孩子的态度,心里爱但嘴上要嫌弃。小时候不懂,长大了才明白。

如果没有意外,今年夏天和冬天都会回国。也不知道是年纪大了不爱折腾了,还是更想多待在父母身边,不仅仅是陪伴他们,也想做回无忧无虑的小孩。哎,我最近可太累了。近期应该都不会再去上海了,有缘再见,肯定会再见的。

《破地狱》《九龙城寨之围城》观后感

作者Hillway
2025年5月29日 23:54

看了两部香港电影,分别是《破地狱》和《九龙城寨之围城》。这两部电影都还不错,前者是现实的题材,讲的是家庭、亲情和离别;后者是动作电影,主要看眼花缭乱的动作场面。

《破地狱》

《破地狱》的口碑很好,看过后觉得确实不错。故事简单,剧情也不复杂,却能引人思考。

它讲述的是男主接手了一家「白事店」,学习给死人穿衣服、化妆,无条件满足顾客的需求,但与这家店以前的合伙人文哥理念不合。文哥本身是超度亡灵的师傅,一切要按传统来做,认为要为「死人」着想,不能都听「生人」的胡乱指挥。文哥家的一儿一女都与他不合,儿子不想学这门技术却让他早早辍学逼着他学,女儿想学却因为「传男不传女」的规定学不了。最后他们实现了和解,文哥觉得「生人」也重要,要考虑「生人」的感情,对儿女也不再一味地固执和死板。

我觉得这部剧的男主应该是八十多岁的文哥,而黄子华扮演的「入殓师」主要是来串起剧情。剧中出现好几具逼真的尸体,看起来稍微有些不适。

《九龙城寨之围城》

看之前没报多少期望,没想到却很好看。电影的故事很简单也很俗套,讲的是争抢地盘的江湖恩怨,但电影的重点是动作戏上,几乎是从头打到尾。很久没看这种刀刀见血的电影了,有很多血腥暴力的镜头,看着会有些不适,有些动作显得过于夸张,不过整体上凌厉的打斗、流畅的叙事看起来很过瘾。

好大人or好爸爸

作者海河
2025年5月29日 14:53

买保险

前几天苗姐生病住院,三天账单1700多,新农合给报销了80%,起付线500,最后自费了大约800多,问了下保险公司,答复是住院险有一万免赔额,结果算了下一分钱都没报,索性直接退保换了家公司,这次买了0免赔的产品,同时可以报销出院前30天和出院后无限期复诊的药费、检查费,比之前靠谱了,保费一年1750,意外险也重新升级到了50万,一年205元,这样一年的保费就是400新农合+1750住院百万医疗+205意外,合计2355,在我们预算内。

小x很抵触买保险,比如之前买意外险,他也是抱着「生死有命富贵在天」的态度,还极其嚣张的说「我们江苏人从不买保险」,然后告诉我他们一家都从不买保险,也不相信这玩意,我家就不同了,九几年我爸妈就开始给我们买各种保险,从意外、寿险、医疗,到储蓄型保险,总之就是「有责买之,无则更要买」,前前后后买保险花了十来万,不过消费型的保险也确实都给返利了,很幸运没遇到所谓的骗子公司。

我认为保险这种东西,用不到是最好的,但是用小钱来给自己保障,是很划算的啊,一年几千元就能得到几百万的医疗和意外保障,还是很好的。

独处

今天x回江苏了,端午赶上他妈妈过生日,这几天又是我和苗姐独处了,下月中旬准备带苗姐回老家住几天,因为JN的出租房合同到期,带着苗姐去收房怕她闹腾,把她放老家,我自己去吧。

分享玩具

前阵子我还在抱怨苗姐怎么不懂分享呢,之前带她在沙滩玩,她自己的玩具护的严严实实,别的小朋友碰一下都不行,这几天我在试着让她学习分享,但对于分享玩具这件事态度的转变是我看到抖音的一篇科普,说孩子2岁前不需要分享,只需要让她知道「边界感」,还有一件事,昨天傍晚,我带着苗姐和她新买的扭扭车去小区楼下玩,一个小女孩没经过我们的同意就把苗姐的扭扭车骑走了,我眼看着她骑了好几圈,还把车摔了几次,抱着「和小孩计较什么呢」的想法,苗姐没看到我也就没说什么,不一会,苗姐还是看到自己扭扭车被别的小朋友骑着,立马开始哭,我抱着她去要扭扭车,那小家伙还说「就玩一会就给你」,我见这孩子没有礼貌直接一把按住小车,让她下来把车车还给苗姐,小朋友阴着个脸下来了,苗姐也不哭了。

换作之前我没养娃前,可能会给宝宝说「没事的,给姐姐玩会、不要小气,姐姐玩玩就给你」之类的P话,现在我才不会这样愚蠢,孩子的视角下,自己的东西被抢走了,哭是因为无助,如果这时还不合时宜的当「好大人」,那在孩子脑海里,只会留下一个画面「某年的某天,我的玩具被坏人抢走了, 我的爸爸还凶我」,天知道她有多无助,加之这个小朋友的父母确实也没有什么素质,我拴在路灯上的扭扭车自己孩子不问问谁的骑上就跑,也是不对的。

大家说我是小题大做吗?换作你 会做「好大人」还是「好爸爸」。

ps,截至发文时,发现车车坏了,后轱轮被骑的歪了,转起来蹭塑料……这个熊孩子。

《怪奇物语》前三季观后感

作者陈大猫
2025年5月29日 09:57

《怪奇物语》前三季观后感

最近看了美剧《怪奇物语》前三季(目前已出到第四季,预计还有第五季),觉得可以略微记录一下。

这几年闲暇时间很多都贡献给了抖音、微信、知乎、微博、小红书,特点就是能利用碎片化的时间,随时随地,掏出手机,这几个APP轮番切换,不断刷新,总能刷到毫无营养但略微感兴趣又不用动脑筋的内容,于是乎,时间就不知不觉溜走,虽然并没有什么收获,但又沉迷其中无法自拔。

前些天有朋友推荐了《怪奇物语》,照例先查了下豆瓣评分,第一季高达9.1分,嗯,看来是可以看一看的。正好今年五一期间注册的熊猫PT站里面有《怪奇物语》1-4季的合辑,用Nas下载,速度真是感人,很快就全部下完,然后飞牛影视自动刮削,生成海报和简介等,家里电视上、平板上都能无缝点播,很完美。

《怪奇物语》前三季观后感

总的来说,第一季很精彩,从一个小男孩在黑夜中的失踪开始引出故事,中间是其他人围绕“营救”展开分支剧情,最后成功击败怪物,找回小男孩。异世界、超能力的设定很吸引人,而且基本上符合逻辑,不会让人太出戏。我觉得尤其值得称赞的是,里面没有太明显的“主角”,大家都是可以是主角,都很出彩。

《怪奇物语》前三季观后感

卷发小朋友挺可爱(然而到第三季他也变成恋爱脑了,摔)

第二季和第三季质量就明显下滑了,感觉就是编剧和导演为了有后续而绞尽脑汁搞出的后续而已,怪物看起来那么的凶猛而恶心,但又那么的弱鸡(反正最终都是会被主角打死的)。

这部剧里的感情戏让我很难评。最无法接受的是,一群小朋友居然谈情说爱,还不断刻画他们腻歪在一起、接吻的画面。我并不否认小孩子(剧中的设置他们已经是初中生)也会产生懵懂的爱情,但电视上这么渲染,实在是是没必要。卢卡斯(黑人男孩)、麦克斯(白人女孩)成为小情侣纯粹是为了政治正确,好吧?完全看不出他俩有任何成为CP的可能性和意义。让威尔的妈妈和警察局长飚感情戏也完全没必要吧,这三季中,威尔妈妈都是处于高度紧张、神经质、崩溃边缘的情况,根本无法静下来谈恋爱,偏偏编剧安排警察局长爱上她,所以一转到他们的场景就是吵闹个不停,而我,只想快进。

唯一正常点的CP又是狗血的三角恋:南希、乔纳森、史蒂夫。我能接受是因为这三人都是即将毕业的高中生,也该谈恋爱了。而且众所周知,白人相对要早熟得多,在剧中,南希打扮得和office lady没有两样,漂亮的发型、首饰、高跟鞋,跟史蒂夫好的时候自然而然和他上床,跟乔纳森好的时候两人又立马如胶似漆。最狗血的是在科学家家里,两人开始还扭扭捏捏不承认的情侣,乔纳森还要睡沙发,被科学家一眼看穿,结果半夜两人都滚床单滚到了一起……

《怪奇物语》前三季观后感

飞牛影视APP配合nas使用挺不错

剧中也充分展示了美帝腐朽的生活方式,不得不说,令人神往。

按照故事背景,这是发生在1980年代的事,而且是在印第安纳州的一个小镇上,然而,各家各户的房子、室内布置、出行条件、商场可以说超过现在国内很多地方。主角们都是住的乡村大别墅,前庭后院,史蒂夫家还有游泳池。

乡村的公路都是硬化得很规整,而且保养干净。

家家户户都有车子,而且不止一辆。还在上高中的学生们很多都是开车上学,史蒂夫还是开的宝马。乔纳森家算是比较穷的(单亲妈妈在超市当收银员,还带2个儿子,在国内租房都困难吧?),也不影响住别墅、开车(乔纳森的车看破烂程度,估计是个二手车,妈妈的车也很普通)。

总的来说,这部剧还是值得一看,特别是第一季。后面的几季接着看的话,可以打发时间,不看也没啥损失。

玩域名获得两个意外收获

作者Hary
2025年5月28日 18:32

mrsao.com卖出去了
 之前有一次在 《连续两天在大佬论坛中奖,喜提两个域名》 中奖得到了一个mrsao.com域名,然后就用AI写了几个符合这个域名的页面玩了一段时间,最近快到期了,前几天我就开通了阿里云米店,然后把这个域名挂在了阿里云一口价上去,也没想着能够卖出去,没想到今天刚上班,就收到了个交易成功的邮件,点进去一看,竟然是这个米交易成功了。
1
{lamp/}

获赠一个ere.cc
 昨天在逛博友圈的时候看到 《满心记更换域名啦,顺便送几个域名》 然后就看到ere.cc这个域名满心老哥准备送了,这个域名其实很早就在大佬论坛里面看到过,好像也转手几个人了,其实当时挺喜欢的,最开始的时候问过价钱,那个大佬要价有点高后来就没再惦记了,昨天看到满心老哥发的文章之后,就顺手评论了下,然后今天一大早就给我push过来了,太感谢了,挺喜欢这种短域的,特别适合做个邮箱域,有喜欢这个域名的么,来自定义分一个邮箱前缀。
2

产品被拒

2025年4月3日 00:05
晚上下了班打开电脑刚坐下就看到了一封 Google 邮件,首先看到了发件人 "Chrome Web Store",当时就心想提交审核一个多星期了,终于看到一点音信了。点开后,还没等我高兴,便看到了.

空腹骑行75公里

2025年3月12日 15:36
最近郑州天气突然转冷,骑行频率也降了下来,周六正好赶上休息,实在是憋坏了!今天不管刮风下雨,必须出去骑一趟

骑行开封

2025年2月20日 16:14
我对于开封的印象,还停留在开封府尹·包拯。处于好奇和无处可去的想法,周六早上吃完饭,说走就走了

Blog Function Update 2025 (2)

2025年2月6日 13:03
之前我一直使用 sitemaps.com 手动生成 sitemap.xml,但每当 URL 新增或变更都需要手动提交。实在麻烦!所以,今日用 Liquid 实现自动生成,一劳永逸

写一个骑行页面(二)

2024年8月14日 20:40
在前几天写的数据展示页面中,日历与JSON数据的时间处理依赖于本地时区的getDay()和setDate()方法。然而,博客部署在GitHub Pages,时区的不同导致日历出现了显示偏差

喜提新车 Wilier Cento 10SL

2024年7月12日 22:33
得这辆车纯属缘分,前段时间在网上认识一个宁波的好大哥,没想到去年我们一起参加过同一个比赛,大哥是在宁波鄞州区开自行车店的,聊了许久大哥给我推荐一辆神车 Wilier Cento 10SL!

技术亦福亦是祸

2024年2月2日 15:50
今天一个偶然接触到了Clarity Session Recording,当我看到它在我调试本地网站时,它居然录制了一条长达45分钟的视频,我大为震惊!由此,我怀揣着对技术的敬畏和亢奋的状态写下来这篇文章,虽然我非技术大牛,也非经济哲学家,但丝毫不影响我对技术的一些拙见

今日随笔

2019年3月26日 10:17
看到这张图的时候,我很震惊。这个CDN流量包是我昨天凌晨刚买的,直到此刻才发现我的CDN流量被恶意盗刷了

第一次校招复试总结

2019年3月4日 10:28
上个月28号的时候校招拿到了一家公司offer,今天十号了也到了约定的时间,我早上8点30左右出发点去应聘,那会儿在公交车上晕车感觉真是生不如死...

电信用户投诉攻略

2019年2月25日 12:44
因为我手机卡是合约卡的原因,又临近毕业了,这张卡握在手里真的没得用,36元套餐1G流量,这样的套餐我来说真的是难受...
❌