阅读视图

发现新文章,点击刷新页面。

去了北京


    自5月6日~10日,我去了北京,在3个区(通州区、密云区和大兴区)以及另外两个大会上做了七场报告和点评,中心思想就是“守正创新”。守正,就是坚定培养人的方向目标,明确培养什么人的问题,德育为先;创新就是瞄准时代的特征,拥抱AI。3个区的活动是在这些的区教育学院以及当地的幼儿园举办,上午是观摩,下午是报告会。全国、全市的两个大会讲的也是这些内容。
    我的体会是,北京毕竟是我国的政治、文化中心,有一大批人始终坚持政治、文化立场,坚守做中国人的立场,即使外面刮起一阵阵风,他们不会盲目跟风。记得去年,我也参加了怀柔区的一场活动,内容是德育,引领人是当地的特级教师赵兰香,这次她还特地前来见了我,那次,我还参加了北京市教育学院举办的研讨会,内容也还是幼儿园德育,让我做了有关幼儿园德育的主题报告。
    国家花费人力、物力、财力,举办幼儿园,旨在培养我国的建设者和接班人,而非极端个人主义者。每个从事幼儿教育的人首要明白的是这个道理,别无其他。

一路向南,骑见江南:一人、一车、一旅途

4月24日,递交完辞职报告的那一刻,我心中一阵轻松。我终于可以离开了,离开熟悉的一切,前往下一个未知但让我心跳的地方——义乌。

原本的计划是从郑州骑行到义乌,约一千公里。然而,我的长途骑行装备都还在老家淮阳,不得不先折返一趟,郑州到淮阳≈210公里。

第一站:淮阳

4月26日,天还没亮我就起床了,所有行李早已打包妥当,多亏了顺道的好大哥和双双姐姐,他会把行李直接送到义乌,精准投放到阿丽家门口。所以我只需要背上包、骑车走就行了。

临出门前,我把钥匙存放在小区门口的保安亭,与保安打了招呼,等双姐有空再来取。

05:42 AM 郑州·孙庄北院

出小区准备吃饭

在小区南门吃了碗大米红枣粥,这是我在郑州的最后一顿早餐。我吃得很慢,望着小区,心里百感交集。最不舍的,是我的双姐,直到离开,我们也没有一张合影。唉……今朝一别,不知何日再见。

离开河南前·最后一碗粥

10:49 AM 开封·张市桥

从出发到现在,已骑行近百公里(99.81公里),历时4小时15分。中途几乎没停,一直到开封张市桥,看到一位大爷坐在家门口听戏,我停下来敬了他一根烟,顺势在他门口歇了口气。我实在太饿了,得找点吃的。

开封·张市桥 不知名大爷家门口歇脚

骑行至此,除了背包里三根香蕉,还有昨晚和双姐吃剩的半盒牛肉,没有其他补给。吃完香蕉后抽了两根烟,心理上稍有缓解,重新背上包,继续赶路,准备找个地方补点碳水。

坐在大爷家门口板凳上,补个蕉

11:52 AM 周口·扶沟

点了一碗烩面和一个鸡爪,牛肉是我自带的。说实话,第一次见到餐桌上这么干净的盘子…鸡爪也很入味,咬一口我就扔了,太清真了

白潭镇人民政府旁边的清真小饭店

骑到汴岗镇时,看到一家超市,顺便买水时偶遇了渤哥。

牌子!班尼路儿~

经过东夏亭镇人民政府旁的一条支流,干涸得厉害,河床都裸露出来了。不知是人为抽干,还是自然干旱所致。在这段行程中,这样的场景我已经见过好几次。

干旱,河床都漏了出来

5:39 PM 周口·淮阳

到家!在小区门口买了两杯最爱的粥

全程逆风,路上每一米都艰难,越过扶沟、西华,路过麦田,虫子爬满全身,骑得越快身上越多,还有像蛆一样的小东西全身都是,包括脸上,这六十多公里真的折磨,全程都是虫。

骑行 204.4 Km

本次行程装备大致如下:

  • Challenge ELITE 700×25c 管胎 x1

  • Topeak 多功能工具组

  • 康比特盐丸 x10包

  • CUKTECH 15 SE 移动电源

  • 前后尾灯

  • 便携打气筒

  • 备用袜子 x4双

  • 三合一充电线 若干

左边青蓝色的包是我从郑州背回来的,背负系统不科学,透气性也差,只适合日常出行,不适合长途骑行,这次回来扔家里让他吃灰。这次换上了右边的迪卡侬骑行包,内置水袋设计很实用,咬咬吸嘴就能补水,长途骑行相当方便。

换个背包,准备补给

韶音耳机声音太小,周围稍有噪音就听不见。干脆把BOSE音箱扎带绑车上,没有音乐我不能活。

把音箱绑在了车上

04-28 6:55 AM 淮阳·龙湖新城

奶奶身体最近不太好,高血压住院了,所以骑行晚走了一天。

这是我在淮阳的最后一顿早餐:胡辣汤、鸡蛋饼、两个鸡蛋。早上的蛋尤为重要,它决定了我今天能不能顺利完成骑行

在淮阳的最后一顿早餐

刚吃完早餐,习惯性的捏捏车胎,发现车胎气压不足,我当时就觉得不对劲,很大概率已经爆胎了。当我拿打气筒充气时,气嘴滋滋漏气,我当时就服了。这次行程我就备了一个管胎,这种胎很贵,没那么多资金支持我买一堆备胎,管胎这种轮胎和其他胎不一样,换胎要除胶贴胶费时费力,你要说补胎,我估计一般的小品牌技师都没摸过管胎,手头宽裕了,我一定要把这轮组先换了,它不支持管胎以外的其他胎型。

换胎,重新贴胶

真是服了,啥好事都让我碰上了

安装好了,最后抽条

准备出发

12:12 AM 安徽·阜阳·太和县

骑行105公里到达阜·太和县,途中遇到很多有意思的场景,就是没有拍照,天气实在太热了,骑行的过程中实在懒得下来拍照。

在阜阳吃个午饭

18:02 PM 安徽·淮南·凤台县

骑行202公里到达淮南·凤台,吃个晚饭,点了一晚大肉水饺还有一份鸭腿,这点饭量对骑行时的我是完全不够的,她们家的绿豆汤是免费的,不稀比较稠,而且还是免费的,我连着吃了三碗…

在淮南吃个晚饭

本来想着吃完饭继续骑,奈何自己看见宾馆走不动路,想想两天也到不了,不急这一会儿。

淮南·凤台 御唐宫

到了屋里第一时间扒个精光,实在太热了,热了干,干了湿,浑身都很黏,

这胳膊,熟悉的痛感

骑行 202.6 Km

04-29 6:55 AM 安徽·淮南·凤台县

早餐还是老三样,这次的粥我多加了糖,高糖分有助于我长途骑行

在凤台县的最后一顿早餐

11:12 AM 安徽·淮南·田家庵区

路过淮南市区买了5根香蕉,这天实在太热了,隔着手套都能感觉到香蕉是热的

补个蕉

12:32 AM 安徽·合肥·长丰县

这个披萨是我吃过最难吃的,已经不能称为披萨了,速冻的薄饼加热了一下,这顿饭是在蜜雪冰城吃的,就为了只有他们店舍得在荒无人烟的地方开空调

吃个中午饭

当时看到这个场景真的很惊艳,一抹绿,在这里钓鱼露营一定很爽

一抹绿

太热了,找了阴凉地,坐在国道两波护栏歇会儿…

歇会儿

6:46 AM 安徽·合肥·肥东县

绝了,即出发后第二次爆胎,当时天已经黑了,还好不是在荒郊野外爆的,不然我就要提前体验田野生活了,补救的可能性很小,因为管胎里面的管子炸了,管胎这种东西不用考虑当地施救的可能性,实体店不会有管胎卖,修更别说了,几乎失传的手艺。

再次炸管胎,而且是后轮

也怪我,左转速度太快,正好有个坡度看不到这缝,后轮当场巨响爆了!

就是在这里

爆胎后,我穿着锁鞋推行了两公里左右,找了一家宾馆住了下来,我也懒得检查哪漏气了,碳轮坏了没有,一切都不重要了,现在就想着咋带车去义乌,我没有车包,高铁肯定是上不了。

刚骑行 176 Km 当场退役

04-30 8:09 AM 安徽·淮南·瑶海区

经费紧张,去义乌我也有规划着时间,等不起在网上买管胎的代价,由于没有装车包,公路车无法上高铁,托运怕出事。在网上找了一个义乌直达大巴车,可以放下面,车费200,行李房120砍到88,合计费用比高铁还贵。

打包滚蛋

11:32 AM 江苏·南京·江宁区

到饭店了,客运公司开始收割了,大巴车把车停到了他们据点,周围几公里都没有商店,饭堂和商店的物价堪比上海浦东机场,有些人早有准备自带了泡面,但是人家的热水专供司机,不让旅客用,笑了。

客运公司开始收割

3:16 PM 浙江·杭州·上城区·九堡大桥

看到这里差点掉小珍珠,之前在杭州上班时经常开车路过这里,Hi 杭州 好久不见。

杭州·九堡大桥

时隔六年,再次为热爱脱皮。痛苦如影随形,却也因此更加坚定

晒伤脱皮的右臂

晒伤脱皮的左臂

黑白分明

FaceFusion 3.2.0 — 进阶体验(不要瑟瑟)

书接前文,如果要处理普通的视频资源,根据上一篇文章的内容完全就足够了。

但是,如果你想处理点多少有点暴露或者纯粹的瑟瑟内容,你是怎么都进行不下去滴。

启动脚本:补上一个快速启动face fusion的ps代码,保存为ps1,相关路径改成自己的,启动的时候直接拖到powershell里面执行即可。

conda deactivate
conda init
conda activate facefusion
cd  E:\facefusion3\facefusion
python facefusion.py run --open-browsers

现在来说下瑟瑟的问题,一般这时候会卡在分析完成的地方:

analysing:100%之后就没动静了,原因在于视频的分析完成之后发现你的视频有瑟瑟内容,而至于瑟瑟内容的检测是通过content_analyser.py中的detect_nsfw方法实现的,如下(这个是我改完的):

def detect_nsfw(vision_frame : VisionFrame) -> List[Score]:
    nsfw_scores = []
    model_size = get_model_options().get('size')
    temp_vision_frame = fit_frame(vision_frame, model_size)
    detect_vision_frame = prepare_detect_frame(temp_vision_frame)
    detection = forward(detect_vision_frame)
    detection = numpy.squeeze(detection).T
    nsfw_scores_raw = numpy.amax(detection[:, 4:], axis = 1)
    keep_indices = numpy.where(nsfw_scores_raw > 1.0)[0]

    if numpy.any(keep_indices):
        nsfw_scores_raw = nsfw_scores_raw[keep_indices]
        nsfw_scores = nsfw_scores_raw.ravel().tolist()

    return nsfw_scores

主要就是下面这一行,关于nsfw置信度的问题,原来是0.2 直接改到1.0就行了,毕竟,置信度不会超过1

keep_indices = numpy.where(nsfw_scores_raw > 1.0)[0]

重启进程,再次运行:

现在就会继续往下进行了。

视频资源文件导致的异常:最后来说下视频文件异常导致的崩溃,对于一些文件可能会出现下面的错误

Analysing:  95%|====================================================   | 3625/3800 [00:19<00:00, 189.67frame/s, rate=0]
Traceback (most recent call last):
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\queueing.py", line 625, in process_events
    response = await route_utils.call_process_api(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\route_utils.py", line 322, in call_process_api
    output = await app.get_blocks().process_api(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\blocks.py", line 2146, in process_api
    result = await self.call_function(
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\blocks.py", line 1664, in call_function
    prediction = await anyio.to_thread.run_sync(  # type: ignore
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\to_thread.py", line 56, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\_backends\_asyncio.py", line 2470, in run_sync_in_worker_thread
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\_backends\_asyncio.py", line 967, in run
    result = context.run(func, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\utils.py", line 884, in wrapper
    response = f(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\uis\components\instant_runner.py", line 82, in run
    create_and_run_job(step_args)
  File "E:\facefusion3\facefusion\facefusion\uis\components\instant_runner.py", line 97, in create_and_run_job
    return job_manager.create_job(job_id) and job_manager.add_step(job_id, step_args) and job_manager.submit_job(job_id) and job_runner.run_job(job_id, process_step)
                                                                                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 11, in run_job
    if run_steps(job_id, process_step) and finalize_steps(job_id):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 72, in run_steps
    if not run_step(job_id, index, step, process_step):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 58, in run_step
    if job_manager.set_step_status(job_id, step_index, 'started') and process_step(job_id, step_index, step_args):
                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 323, in process_step
    error_code = conditional_process()
                 ^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 340, in conditional_process
    return process_video(start_time)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 418, in process_video
    if analyse_video(state_manager.get_item('target_path'), trim_frame_start, trim_frame_end):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 102, in analyse_video
    if analyse_frame(vision_frame):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 77, in analyse_frame
    nsfw_scores = detect_nsfw(vision_frame)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 115, in detect_nsfw
    temp_vision_frame = fit_frame(vision_frame, model_size)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\vision.py", line 243, in fit_frame
    height, width = vision_frame.shape[:2]
                    ^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'shape'

这些问题还是处在content_analyser.py 问题在于对vision_frame 为None的帧进行检测,导致检测进程崩了,这里提前判断下是否为空,当然,更直接的办法是直接全部返回False 禁用nsfw检测。

参考下面的方法修改代码即可。

def analyse_frame(vision_frame : VisionFrame) -> bool:
    if vision_frame is None:
        return False
    nsfw_scores = detect_nsfw(vision_frame)

    return len(nsfw_scores) > 0

好啦,最后来看看小视频吧:

如果用姐姐我的照片换脸视频了,换好的视频记得给我发一份,嘻嘻

The post FaceFusion 3.2.0 — 进阶体验(不要瑟瑟) appeared first on obaby@mars.

我们的婚礼

2025年4月19日,我和南瓜在我的老家九江完成了婚礼仪式,并于5月5日在南瓜老家高平办了出阁仪式。相比领证,两场仪式更具象征意义,过程中也投入了非常多的时间和精力,完成了今年最重要的两件事之一(另一件就是进行中的装修了)。

九江

婚礼放在九江,一是方便老家亲戚朋友,二是趁机请岳父岳母来家里看看,九江和高平相距甚远,日常不太有机会串门。婚礼形式则按自己喜好选择了户外草坪婚礼。

九江能办户外草坪婚礼的场地不多,风景好的更少,在婚策的建议下,我们选择了庐山开元名庭度假酒店,环境不错,关键是离我家仅4公里,非常方便。我们周四晚回九江,周五布置一天,周六婚礼。

草坪现场植入了一些小心思:

[查看全文...]

泰山牌炸酱面的做法

这是一篇约稿。
前两日S̆̈让我写一下【北方炸酱面】的做法。趁着周四老丈人过来做饭,就问了他一下。他只是个普通老头子,不敢称什么大连特色,更不敢说能代表北方。
我妈那边的做法肯定跟老丈人是不同的,但我早就不记得了。她只在夏天热得实在不想做饭的时候才会做“过水面”,而我们1993年搬家,厨房有明窗之后我妈就就再没做过了。
是的,我周围所理解的炸酱面的本质是一种偷懒的选择,像电视节目里黄磊那样忙活几个小时搞各种“码子”,是不可能的。

下面正式开始。

配料:

主料:(大)豆瓣酱+猪肉+(土豆)或豆瓣酱+鸡蛋。黄瓜。
辅料:白开水、淀粉、盐、白砂糖少许。葱、香菜、大蒜。
——我们这边日常只吃基本的大(豆)酱,小超市买厨邦/海天/东古都行,欣和不好(淀粉太多)。至于什么甜面酱、黄酱、郫县豆瓣之类都不不包括在我们的日常食谱中。然后炸酱辅料分两类:猪肉可以加一些土豆,鸡蛋就只有鸡蛋了。为什么不用牛肉?老知青的食谱上就没有这玩意儿!

烹饪方法:

1)猪肉切丁,如果加土豆则将土豆也切丁。放少量油,不炝锅,将猪肉煸炒至熟。如果加土豆,也是正常将土豆和猪肉一起炒熟,跟正常炒肉没有区别。如果炒鸡蛋酱,就是正常不炝锅炒鸡蛋,最后将炒好的鸡蛋分成大约一勺能盛3~5块的小块。盛出备用。
2)锅中再放少量油,倒入适量大酱,炒热。豆瓣酱起泡后倒入炒好的猪肉或鸡蛋。注意炒酱非常容易糊,此时可以适量减小火力!
3)翻炒均匀,立刻加入适量温开水。搅拌均匀后小火加热收汁。加水的目的是降低咸度。
4)根据上一步的加水量,配置适当的水淀粉。待收汁到差不多的时候,先加一勺白糖,然后倒入水淀粉,搅拌均匀。白糖和淀粉都是为了增稠,白糖也另外有提味的效果(我个人非常不喜欢这一勺糖)。
5)收汁到一定程度关火盛出即可。
6)白水煮面,在汤里稍微加一点盐。
7)煮面期间将黄瓜切丝,另盛一盘。
8)葱切葱花、香菜切末、蒜捣成蒜酱,单独盛放。
9)自己看着拌。

总结:

从来就没有什么炸酱面,只有大酱拌面。只是酱直接用太咸了,所以要加一些东西把盐度降下来,并且不影响口感。

麻雀

走在街头,俯身看到一只麻雀静静的躺着。无疑,它已经死了。它等着回到大自然的熔炉,开启新的生命征程。麻雀这一世生涯,虽然短短,或许也绚烂吧。终了,默然复归。

弘一法师说,世间一切空欢没有一样东西真正属于你,你来皆大欢喜,你走两手空空。唯一属于你的就是你活着的每一个瞬间。人生本没有意义,这短暂的几十年,就是我们生命的全部意义所在。

IMG_20250511_112555.jpg

我们需要怀着一颗炽热而又细腻的心,聆听每一朵花开的声音,观赏每一处独特的风景,感受当下的每一次爱与喜悦。纵然如麻雀般死去,也不枉此生。生活不在遥不可及的未来,未来也不等同于生活。珍惜当下,不抱怨命运的不公,不退缩于困难险阻,始终对生活保持热爱,这才是对生命的应有敬意。

正如本如禅师所言:处处逢归路,头头达故乡。本来现成事,何必待思量。

看电视

自从工作后就很少看电视,这一习惯坚持了20年。之所以不看电视,是因为年轻时更喜欢上论坛、玩游戏等;而近几年更喜 […]

票务记17:归零 重走来时路

假期结束如预期迎来短暂的超淡季,外加上投流后果影响,近几天无论我怎么挣扎,始终无法激起一丝浪花,少得可怜的咨询和几乎为零的订单量,让我又进入了反思总结中。

这个假期后票务干了差不多一年,从抢票到现在的系统票,从不稳定到接近稳定,收入也上升了许多,从依赖他人科技手法到自控渠道,倒票这灰色产业差不多玩透了。但始终还是上不了台面的生意,且目前长期稳定的就票务这小副业,居安思危,这副业遇到问题那我的日常收入又得陷入困境。

短暂的淡季是时候结合近半年的思考重新布局,没有流量没有单子那就忘记过去的积累,全部重新布局重来。近期的一些状况和思考,积累成本文。


隐私保护:因涉及隐私内容RSS已做隐藏,请通过原文链接阅读更多
版权声明:如无注明均为原创,未经允许不得任何形式转载
原文链接票务记17:归零 重走来时路

环京房价下跌

昨晚睡前看了眼贝壳,环京某个小区最近成交价3800多一平米,80多平,只需要36万。触目惊心呀,19年我去这个小区看过,少于17000一切免谈。卖点就是央企开发,品质保证。如今4000块钱不到,房价下跌压塌的都是一些怎样的人,他们又做错了什么?

手上还留有好多当年四处看房的宣传单和报价,一直没心思整理,明天出发去医院,准备开个新坑,再讲一下,我所经历的房价下跌的故事。

用户外活动填满五一:瓦屋山篇

瓦屋山

今年的五一感觉是有生以来活动安排的最满的一次。

先是五一假日前老婆把小舅子和大姨妈摇来了自贡,28号落地,带他们吃喝玩乐,30号再去了一次瓦屋山徒步。他们2号走后,3号又马不停蹄的去了康定勒多曼因爬山,来回42公里,最高海拔4600米,5号晚上十一点半才重新回到自贡,我到现在都还有点没缓过劲来。

大姨妈不是第一次来了,小舅子倒是首次过来玩,所以老婆先是安排他们去了上次我们两个人都好评的「电子厂餐馆」——一个本地人都不一定找的到地方的苍蝇馆子,要从主路拐进一条小路,进去走个一两公里才能看到。

小路开了一两公里左右,在这个尽头右手边小巷子里

小店需要提前预订,不接直接过去的客人,菜都是非常新鲜的。招牌菜是腰花和牛蹄筋,整体口味都是偏重油重辣的,小舅子和大姨妈吃完后两个人在自贡待了几天就打了几天「标枪」。

腰花非常嫩,里面配菜用了一些类似油渣的东西吃起来非常香(不知道是不是勾芡掉落焦化的)。牛蹄筋则是他们的招牌,炖的非常软烂又略带胶原蛋白的口感,强烈所有外地来的朋友过来品鉴。

1. 牛蹄筋 2. 腰花

老婆之后请了假带他们去看了自贡灯会和恐龙博物馆,这部分我要上班就没参与,也就没给他们拍照流念了。

因为瓦屋山风景绝美,这段时间又免门票,所以30号当天我们准备开车带他们去感受一下四川的山川河流和我们最近喜欢上的户外徒步。

出发!
瓦屋山位于四川省眉山市洪雅县境内,海拔2830米,是中国最大的平顶桌状山,被誉为“云霭之上的诺亚方舟”。这里拥有原始森林、高山瀑布、杜鹃花海等自然奇观,是世界第二大、亚洲第一大的桌山,与南非开普敦的桌山齐名。山顶平台面积约11平方公里,植被覆盖率超过90%,是珍稀动植物的天堂,如珙桐、大熊猫等。四季景色各异:春赏杜鹃、夏避酷暑、秋观彩林、冬览冰雪,尤其冬季冰瀑堪称一绝。道教文化底蕴深厚,传说为太上老君升仙地,清代曾是川内著名道教圣地。现为国家AAAA级旅游景区,兼具生态与人文价值。

瓦屋山是目前我去过的四川普通爬山类型景点中除九寨沟外资源最全面,最好的一处景点了。

下了高速后还要行使大概20公里左右的盘山公路,最后5公里左右进入景区范围,整个山区被密集且高大的原始雪松森林覆盖,小路在森林中盘旋前进,可以说非常有欧洲或者日本那边原始森林的感觉了。(一路上都是盘山公路,晕车的小伙伴要注意提前吃晕车药)

不多时便能穿山而出看到一个湖,这便是山下一处名为雅女湖的景点,环湖有一条公路,马路边上都是民宿和餐馆。

到达景区大门口时不要停。

我们当时停了,发现到里面游客中心还要一公里左右,又重新上车往里开,最后停在游客中心下的停车场里,20元一天。

准备爬山。

出发

山上的负氧离子非常高,溪流沿着峡谷而下,闻着好闻的空气感觉身体都轻飘飘的。

在山上看到了佛光,后来在朋友圈发现四川这几天到处都能看到这个景象。

佛光,像是被人注视。

路边的溪流和「生命力」照片。

1. 生命力照片 2. 溪流

自拍一个

自拍

1. 一只胖胖的熊蜂把花枝都压的下坠了 2. 步道

在溪边堆了个玛尼堆祈福

1. 清澈的湖水 2、3. 瀑布留影

自拍

山上瀑布资源丰富,而且落差都非常大。

1. 山上的瀑布2 2. 生命力照片 3、4. 自拍

小舅子和大姨妈平时都是不怎么锻炼的,一路上又流连于美景拍照,所以走走停停五六个小时才到金花坪,状态也几近掏空的状态。虽然我们状态还好的很,刚刚热身的感觉,但在询问了工作人员后发现下午4点以后就不准继续往上了,而且最后一班下山的缆车也会在4点还是5点后停运,所以只能坐缆车下山。

其实我们两口子是想快速冲顶的,因为非工作日前100名登顶的客人会送一块奖牌,不过今天肯定是拿不到了,只有下次再来了。

瓦屋山的缆车非常长,几乎坐了十来分钟才到站,想想上次峨眉山七八十的票价几分钟就到了。这么远的距离冬天不敢想象这一路会有多美,而且每站只要50元。

下山
自拍
分两篇写把,下一篇 勒多曼因篇。

主动出击

五一假期之后的第一个工作日,下班吃过晚饭的时候是一个阴天,快要下雨的样子。我又在2号宿舍楼的那堵墙上看到了非洲大蜗牛,我没有任何的犹豫,直接就回宿舍,拿了我那个高浓度的盐水。直接对着那个蜗牛就是几下。一开始已经看到那个蜗牛在躲闪,几下之后那个蜗牛就从墙上掉到了地上。之后蜗牛腹部朝上,我一边喷盐水就看到它一边往壳里缩,但是我没有看到明显的粘液析出,只是看到它一直在缩,可里面说是试图躲避。按照我的理解,如果要让非洲蜗牛去世,它得大量分泌粘液,那么就等于是让它处在一个脱水的状态。但是盐水喷下去,它产生了一个应激的反应,它只是在躲避。

非洲大蜗牛不像田螺或石螺那样,有一个盖子。虽然大家都有壳,但是非洲大蜗牛没有盖子,它的肉身肯定是会裸露在外面。为了能让它赶紧上天堂,我回宿舍拿了一包洗鼻盐。一包洗鼻盐,里面大概有5克盐。之所以回宿舍,是因为我看到我宿舍阳台楼下的那个封闭的窗户的最高处也有一只非洲大蜗牛,爬过那个地方再往上爬就是我宿舍的阳台。那种恶心的感觉马上就涌上心头,我必须把它搞下来。直接从1楼往上喷是喷不到的,于是我就回宿舍尝试从上面往下喷,盐水貌似也能轻微触碰到它,我看到它在那里有些缩的动作,但是它爬到了一个让我几乎喷不到的角落。为什么会存在那么一个角落呢?因为实际上阳台的封闭的铝合金窗跟阳台是有一个小台阶的,它就躲在那个小台阶下面。盐水会让它应激,它的肉身躲在台阶下面,我的盐水就攻击不了它。我尝试拿一个水盆,直接装水往那个地方泼,但是那个地方说远不远说近不近,但是就是很难攻击得到。如果再高一点或者再低一点,我感觉是可以做到的。可以用水把它冲到1楼地上,但现在那个位置,花洒头喷不,如果有强力水枪应该没问题,但是我没有,我只有花洒和一个小盆。从上往下泼水想把它弄到地上是做不到的,回到1楼的时候,我想到的是拿个什么东西把它顶下来,我顺便看到一楼过道有个木梯,于是我就打算用木梯登高,爬上去用盐水把那喷下来。当我想进行这个操作的时候,刚好遇到两个男同事,我跟他们说了我的意图,他们说不用人爬梯子,直接用梯子把它顶下来就完了,结果他们还真这么干。把非洲大蜗牛顶下来了以后,他们就撤退了,留我一个人在那里继续娱乐,离开的时候他们顺便给我展示墙的另外一个地方也有一只蜗牛。

我手里只有一瓶高浓度的盐水和一包5克的洗鼻盐。把高处的那个蜗牛搞下来了以后,我又回到了第1个蜗牛的那个地方,果然不出我所料,那个蜗牛缓过来了,它正在舒展着它的软体,从它的壳里重新出来,然后我又给了它几喷,然后把那5克的盐撒了一大半在它那里。撒下去的时候,我的确能看到液体大量排出,同时也有一些泡沫和一些滋滋的声音。相对于高浓度的盐水来说,盐粒效果显著。整完它以后,我又拿那包剩下的盐去对付高处掉落的蜗牛。那个蜗牛比较狗,下来的时候,居然肉体是向下的,所以我还得把它翻个身然后才能攻击它的肉体。余下的盐已经不多了,所以我又回宿舍拿了另外一包洗鼻盐,我把另外一包洗鼻盐用在高处掉落的那个蜗牛以及最后同事给我指出的那个蜗牛身上。加盐的时候我感觉虽然盐下去了以后能看到粘液和泡沫的冒出,但那个程度会不会不够呢?因为盐下去了以后感觉很快盐就融化掉了,没有看到盐粒了。我的手上除了高浓度的盐水以外,颗粒盐武器已经全部用光,所以我就撤退回宿舍,因为感觉马上就要下雨。

回到宿舍以后,没过15分钟就开始下雨。我没有在下雨的时候或者下雨之后去检查那三个蜗牛,但是第二天早上,当我再去看前一天晚上那三个蜗牛最后停留的位置的时候,我没有看到蜗牛壳,也就是大概率它们又活过来了。

五一环渤海南海岸自驾之旅

大家好呀,我是 Meng 小羽,未来我计划着后续分享下自己的游记,五一回来公司一直在忙着公司项目,推迟了一周的时间终于可以闲下来记录一下了。 序 五一前其实原本计划回一趟对象的甘肃老家,但最后无奈一直抢不到票,只好被迫改了行程、重新规划。这时候离假期只剩下一周,怎么充分利用这短短的几天,就成了我们最重要的问题。可偏偏最近工作特别忙,我们俩一直在加班处理各种任务。 于是我们干脆请 AI 帮我们精挑细选了一番旅游目的地,还把之前去过的地方全部排除掉。综合考虑了时间安排和各地的天气情况,最终决定去看海——目的地:烟台,开启一场环渤海南海岸的自驾之旅。 出发前两天,我们迅速做好了攻略,订好了酒店和景点的大致行程,也规划好了自驾路线,一切准备就绪! 石油之城 由于从北京自驾前往烟台需要 8 到 9 个小时,我们决定在五一假期的第一天,先在中转城市停留一天。一方面是因为长时间高速驾驶对新手来说是个不小的挑战,另一方面也想借此机会去看看黄河入海口。此前我们曾去过黄河上游的兰州,这一次,希望能与黄河在入海处来一次“首尾呼应”的邂逅。 我们选择了相对小众的城市——东营。然而,黄河入海口著名的“鸳鸯锅”景观对天气条件要求颇高。我们第一天下午抵达东营时,天已经开始下起零星小雨,还刮起了风——风浪对海水颜色的影响很大。考虑到这样的天气难以看到理想的景色,2 号一早我们暂时放弃了前往入海口景区的计划,改去了当地较为热门的景点——孤东海堤。 2 号上午,天气依然阴沉,海风格外强劲,海浪也较大。我们来到了这条颇具人气的“网红海堤”。据说,这条防浪堤原本是东营为保护油田开采而专门修建的,没想到却意外成了一个备受欢迎的网红打卡地。 低头一看,海堤上的石块早已布满青苔,在海浪的拍打下,呈现出别样的视觉效果,格外好看。忍不住拍了几张照片,现在看来,每一张都足以用作壁纸。 当天虽然天气不算理想,但海堤与海浪的画面...

大学时光回忆录

该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/notes/190

有时间整理了下 iCloud 相册,删除了许多没有留恋价值的图片。回顾老照片,感受到当时的感动和喜悦,现在看来也是一种珍贵的回忆。

这段回忆从大学开始,再之前的也找不到了。

2018 年,大一。

小米笔记本 + 黑果,踏上开发之路。

2019 年,大二。开始学习前端,刚开始,学的是 Vue2 + Epxress。

2019 年底,找到了一个 Remote 的实习机会。学习 React。然后在这条路上越走越远。

2020 年,经过了半年疫情和实习,在下半年返校季,凭自己的努力换上了 Macbook Pro,黑果转正。也买了人生第一台游戏机,Nintendo Switch。

2020 年的十月,原神上线了。而我在沉迷塞尔达传说旷野之息。

2020 年底,我开始写 Mix Space,一写就是 5 年。

我把这个小窝,布置的很好,这也是我最快乐的快乐的一段时间。

现在想起来前司给我过生日还是挺感动的。2021.4.1

我真的很早就有在写 Swift UI 了,虽然那时候和 Lakr 还没有和见过面。于 2021 年 4 月在学校图书馆。

2021 年劳动节,第一次来杭州,见到了 Lakr。准备前往蚂蚁实习的预备。

2021.7.7,第一次租房,在杭州,三墩,单间,2750。现在回看真是被割惨了。

2021.8 底,离开了,这两个月过得非常煎熬,一点都不快乐。

后面就是秋招了。

https://innei.in/notes/104

在后面我就毕业了。

大学时光匆匆。

看完了?说点什么呢

【日记】2025.05.10

1.风

虽然今天没有大风蓝色预警,但是今天的风也莫名的大。今天中午去拿快递的时候,我发现学校挂的有一条横幅一侧的一根固定的东西已经掉了,另外一根被风吹的反复摇摆。然后我就在那里吃瓜,风反复的吹,终于它断了。

然后,它往我的方向飞来,吓得我赶快低头往前面骑,毕竟是用木头和铁丝固定的,谁知道断开之后是什么样子的。

然后没骑多远呢,我再一次感受到了剧烈的横风,甚至感觉车都产生了微微的横移。(有种在杭州湾跨海大桥上的感觉,那里的横风也很大)

然后,下午上完课我就发现莲池的喷绘塌了,后面的钢也折断了。。。

损坏的展板
损坏的展板

2.生日礼物

2.1April同学送的礼物

嘿嘿,收到了April同学给我寄的乐高,上一次拼乐高好像还在幼儿园,确实很久都没有玩了。不过最近还是有几门考试的,等考试考完了,再找一个合适的时间拼吧。

而且这好像还是3合1,不知道是这么多东西可以拼出来三个呢?还是说有三个选择。反正说明书是给了三本的,厚度还不一样,我打算从薄的说明书开始。(比较菜是这样的)

是乐高!

2.2景同学送的礼物

前几天我就发现小米的快递助手(也就京东快递和顺丰快递都能正常收录了)多了一条京东快递的信息,甚至还是京东快递的第三方商家,因为实际承运的是圆通快递。(怎么会有人在京东快递上买第三方商家的东西啊)

今天中午我收到驿站的短信之后,发现有点不对劲,怎么会是海院路啊!坏了,他给我寄到定海校区了。但是我下午是有课的(形式与政策),就只能下课之后去拿了。但是我不知道定海的驿站什么时候关门(现在定海的驿站好像还挺多的,反正和我当初的驿站已经不是同一个了),然后就问了问流靖王府同学的对象(她在定海校区),说晚上八九点才会关门,那我就放心了。

(虽然从理论上来说,我可以在他们聚合的时候,帮我拿一下快递,但是这样会比较麻烦人家,还是不太好。)

然后我晚上就骑车(带上新拿到的骑行手套),去定海校区拿了快递,然后再回来。(顺便在路上吃了一个晚饭)过去花了40分钟,回来也差不多,看上去骑行速度还是很平均的。

在我拿到快递,看到快递盒上写的”绿速 苹果白型耳机蓝牙超大号音响无线重低音烜音箱家用网红恶搞创意个性生日礼物Airpod圣诞节礼物 三代巨型音响 1件“,其实是有点懵逼的。我看出来它是一个音响了,但是我不知道为什么和 Airpod 还有关系。

等我回到寝室,把盒子拆开之后,才知道为什么会这么写。可恶,我居然没第一时间想起来。

蓝牙音箱
蓝牙音箱

简单工作日食谱


🔸1. 此食谱适合人群

  • 对食物味道没太高要求的人;
  • 工作日不太想吃太好的只想糊弄一下的人;
  • 口味清淡的人;
  • 懒得花太多时间做饭的人;
  • 家里有炒锅的人;
  • 需要摄入蔬菜的人;
  • 健身但是不严格控制摄入 …

你要学会合群,否则就会被世界抛弃

加载中

引言

“你要学会合群,否则就会被世界抛弃”,这样的告诫像紧箍咒般萦绕在每个人的成长过程中。当我们站在成年人世界的门槛前,这个问题却显露出更为深刻的悖论——合群意味着自我消融于集体狂欢中,而刻意不合群又如同在茫茫人海中举起一面孤绝的旗帜。但真正的智慧在于超越这种非此即彼的二元对立,寻找第三条道路:在保持个体完整性的前提下,与世界建立恰如其分的连接。

现代社会的群体焦虑催生了畸形的合群文化。在路口的人潮如同精准运转的齿轮,每个人都面无表情却保持统一节奏。深夜的办公室里,键盘敲击声此起彼伏,格子间里的年轻人与代码共同闪烁着相似的光芒。这样的画面构成了当代社会的经典隐喻——人们害怕被抛弃的恐惧,已经异化成了对整齐划一的病态追求。

心理学研究显示,过度合群会导致”社会认同偏差”,使个体逐渐丧失独立判断能力。《乌合之众》中描述的群体无意识在社交媒体时代被无限放大,朋友圈里的点赞文化、职场中的服从性测试都在强化这种异化过程。我们追求的合群往往不是精神共鸣,而是对主流价值的屈从性认同。

合群

合群的优势

  • ​​资源与机会的拓展​​:合群者通过广泛社交积累“弱关系”,这些关系可能成为职业发展的跳板。
  • ​​归属感与幸福感​​:良好的人际关系是幸福感的决定性因素。
  • ​​降低决策成本​​:随大流的选择能减少独立决策的压力。

合群的弊端

  • ​​自我消解​​:过度合群可能导致个性湮没,例如为迎合群体而压抑真实想法,最终成为“没有棱角”的人。
  • ​​资源浪费​​:合群者可能因攀比陷入无效社交,如为维持人脉被迫参加无意义的聚会,消耗时间与金钱。

不合群

不合群的​优势

  • ​​独立思考与创新突破​​:不合群者往往能跳出群体思维桎梏。
  • ​​专注自我成长​​:独处者可将精力投入热爱之事。
  • ​​避免情绪内耗​​:不合群者无需为迎合他人隐藏真实情绪,从而减少心理压力。

不合群的弊端

  • ​​社会脱节​​:过度不合群可能导致信息闭塞、人脉薄弱。
  • ​​孤独感​​:长期缺乏群体互动可能引发心理问题,甚至诱发抑郁。

结语

树木在森林中既保持根系的独立性,又通过菌丝网络共享养分。这种自然界的智慧启示我们:理想的生存状态应当是”和而不同”。当我们既能保持专业领域的内核稳定,又能在需要时融入多元网络,便实现了对传统身份范式的超越。这不是非此即彼的选择,而是通过持续的身份协商,在流动中共建更开放的价值生态系统。真正的自由,或许就存在于这种进退有度的动态平衡之中。

那些既能享受独处时的深度思考,又能融入群体创造价值的生命状态,才是对抗异化与孤独的最佳姿态。我们不必做燃烧自己的蜡烛,而可以成为既照亮自己也能温暖他人的星火,在浩瀚夜空中书写属于自己的轨迹。

合群与否,不过表象。自洽与否,方为本质。内心丰盈者,独行也如众。

张韶涵“觅光”世界巡回演唱会台州站

上周日,我和我太太在本地体育中心,一同观看了张韶涵“觅光”世界巡回演唱会。

张韶涵“觅光”世界巡回演唱会台州站

张韶涵“觅光”世界巡回演唱会台州站,演出开始之前

知道演唱会期间,体育场附近会提前封道并严重拥堵,我和我太太决定当天下午早些出发,提前抢到体育场对面写字楼地下免费停车位,随后去平桥小吃街吃好了晚饭。提前入场,在座位上如愿收到了椒江文旅免费赠送的一袋城市伴手礼:生姜糖、高升糕、桔红糕、台州美食冰箱贴、袋装饮用水、权益宣传卡片,谢谢金主!

张韶涵是我高中时代较为喜爱的华语女歌手之一,曾买过她的第一张专辑《Over The Rainbow》,对首张专辑、《欧若拉》、《潘多拉》、《梦里花》、《Ang 5.0》等张韶涵早期专辑的每一首歌曲,基本都会唱,但我从2009年至今的歌曲较为生疏,特别是2019年发行的《?》和前几个月发布的《与世之争》专辑,我个人不太喜欢,曲风过于暗黑,歌词上又堆砌辞藻,聚焦网络暴力、权力游戏、人性价值等议题,过于强调先锋性、实验性与跨界融合,可能我更欣赏那个早期的清新抒情、甜美力量与高音穿透力并存的张韶涵!

张韶涵“觅光”世界巡回演唱会台州站 现场照片 张韶涵“觅光”世界巡回演唱会台州站 现场照片 张韶涵“觅光”世界巡回演唱会台州站 现场照片 张韶涵“觅光”世界巡回演唱会台州站 现场照片 张韶涵“觅光”世界巡回演唱会台州站 现场照片

天黑后,张韶涵以一曲《欧若拉》开场,身披光瀑自环形光幕中降临,瞬间点燃现场氛围。陆续唱了热门歌曲《寓言》、《潘多拉》、《不想懂得》、《亲爱的,那不是爱情》、《梦里花》、《遗失的美好》、《隐形的翅膀》、《有形的翅膀》、《淋雨一起走》。特别是,倒数第二首歌《淋雨一起走》,演唱时恰逢小雨,内场观众穿上雨衣,全场起立,雨中大声合唱,配合高空水炮,气氛 High 到最高点!

另外,也唱了我高中时代偏爱的冷门好歌——《手心的太阳》、《猜不透》和《爱情旅程》。

张韶涵在表演歌曲《保护色》时,身穿着十几公分的高跟鞋,因刚下过雨演出地面湿滑滑倒,不慎跌坐在舞台上,一旁的伴舞们连忙将她扶起,站稳后立即恢复状态投入表演。随后,在 Talking 环节,她安慰台下的粉丝道:“小插曲,其实不用担心,人生其实不是跌倒了,就是再站起来的一个过程嘛,所以我们就继续嗨起来好吗”。

纵观张韶涵人生历程,也正如她所言,张韶涵在1982年出生在台湾,童年家境不佳,曾移民加拿大和新加坡,后又返台,15岁便打工养家,通过歌唱比赛补贴家用。成名后在身患重病时却父母卷走积蓄、诬陷其弃养及酗酒、吸毒引发家庭纠纷,同公司的范玮琪在张韶涵低谷期趁机落井下石,导致其一度被雪藏,后在2018年凭湖南卫视的综艺《歌手》再次翻红。尽管家庭多次公开施压,她以法律自证清白并断绝关系,近年舆论多同情其遭遇,视其为原生家庭伤害中逆袭的励志典型,音乐事业也以坚韧形象重获认可。

最后,在安可环节,以一曲《无名的人》作为压轴,为这场演唱会画上浪漫句号。

前几天,我和我太太重新回顾张韶涵出演过的偶像剧《公主小妹》,尴尬的剧情,觉得学生时代就是看这个把脑子看坏的!同时,也发现2007年,时年25岁的张韶涵,2025年,当前她已经43岁了,几乎没有差别,不愧为“冻龄少女”。

张韶涵2007年与2025年对比

张韶涵2007年与2025年对比(图片来源:浙江卫视综艺《奔跑吧》第13季第一期)

重庆之记录一下

重庆之记录一下。虽然坐过无数次了,但每次经过这里,都会无意识地拿出手机记录一下。或许是因为天气好的缘故吧。😅😅😅

巷子里的麻辣记忆

刚在鲁祖庙逛完复古花市,转角就跌进石灰市宏声巷的烟火褶皱里——毛记烧鸡公的门头斑驳了20年,却日日飘着勾魂的椒麻香。掀开塑料门帘,呛辣的香气瞬间攻占鼻腔,那锅镇店芋儿鸡正咕嘟冒泡:现杀土鸡与郫县豆瓣爆炒,高压锅压出嫩肉,再投入芋头慢煨。红油里沉浮的芋头绵软裹辣,鸡肉一抿脱骨,连魔芋都吸饱了汤汁。"加点肥肠!"老熟客的吆喝声里,掉漆的搪瓷盆碰着折叠桌,墙上的泛黄奖状和鲁祖庙的老茶馆一样,都写着重庆人"味道才是硬道理"的倔强。

重庆鲁祖庙

重庆市渝中区鲁祖庙街位于解放碑商圈核心地带,是兼具市井烟火与文艺气息的历史老街。其得名于清末供奉鲁班的庙宇,后演变为充满山城特色的传统街区。街道狭窄曲折,保留着青砖灰瓦的巴渝民居和民国建筑,如见证抗战时期的"鲁祖楼"。如今经改造后,传统与潮流交融:沿街分布花市、茶馆、老火锅店,同时引入文创店铺、网红咖啡馆和艺术空间。标志性的"鲁祖庙花市"延续数十年,成为市民记忆符号。

51劳动节

明天就劳动节啦!该休息时就休息,该躺平就躺平!毕竟,劳逸结合才是硬道理!节日快乐!🙈🙉🙊

观音桥打卡

我那朋友非要到观音桥这个位置打卡“我在重庆”大屏幕。好吧,来都来了,我也拍摄一小段。😄位置:江北区东环路与兴塔路交叉口西南145米(左边观音桥好吃街,右边龙湖天街)

初一爬山

朋友来重庆出差,刚好我也在重庆,于是叫我陪他去各个打卡点拍照。他为此还专门列了个清单。第一站就来到南山上的老君洞道观。

网站大换血

经历了N次尝试和放弃之后,终于还是把网站进行了一次大换血。全新布局,程序进行优化。不过还有很多细节上需要进行再优化。大家在浏览过程中,如果发现任何问题,都可直接留言告知我。

山中穿行

沿途没啥风景,有也是一瞬而过。基本上都是在穿隧道。没法呀~重庆境内就是山多,能开辟出一条快速通道真心不容易啊。

拍了就扔还是收藏起来?聊聊照片的管理与变现

这些年国内版权意识的整体提升(主要是法律法规逐步健全、版权保护案例越来越多、平台审核机制也愈发严格),无论是使用者还是创作者,对“版权”这两个字都比以前上心得多。早些年草根互联网盛行,随手扒张图、剪个音乐、搬运个视频就往自己作品里一塞,基本没人管你。但现在,稍不留神,就可能踩到红线,甚至被起诉。

对于像我们这些摄影爱好者来说,咱们拍的照片可能算不上有多大价值,可真要是被人随便拿去用了,甚至还商用了,倒也不是心疼钱,就是憋屈——毕竟那是自己拍的,是吧。

其实这篇文章躺在我草稿箱里也有段时间了。最初起意写它,是因为在 2024 年年底,我收到一封图片使用申请的邮件。那张图,是我在 2017 年拍摄并发在 Kevin’s 博客上的重庆人民大礼堂夜景。那时候我对拍摄、修图还一窍不通(当然,现在也没好多少),评论区的 @老何 还帮我调了个色。一转眼,时间过去这么多年了。

邮件的发件人是个读书会组织者,说想..... [ 阅读全文 ]


原文链接: https://www.shephe.com/photography/%e7%85%a7%e7%89%87%e7%ae%a1%e7%90%86/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者

FaceFusion 3.2.0 — 免费AI换脸工具初体验

‌FaceFusion‌是一款功能强大的AI换脸软件,支持图片、视频和直播的换脸功能,其换脸效果真实、自然。FaceFusion不仅支持N卡处理程序(如Azure),还提供了CPU处理模式,适合各种硬件配置的用户使用‌。

功能特点:
  1. ‌多平台兼容‌:支持NVIDIA和AMD等主流显卡平台,满足不同用户的硬件需求‌。
  2. ‌多种处理模式‌:提供人脸替换、人脸高清修复和背景高清修复等多种策略,每种策略下包含多个模型可自由切换‌。
  3. ‌自定义设置‌:用户可以自定义执行线程、执行队列、最大内存和输出路径,电脑配置好的情况下可以适当调大这些参数‌。
  4. ‌预览功能‌:提供预览功能,可以自由选择换脸对象和多人换脸,单人换脸通过方位选择人脸、年龄选择人脸、以及性别选择人脸‌。
  5. ‌唇形同步‌:引入wave2lip处理器,同步口型动作,使视频更加自然‌。
  6. ‌面部对齐改进‌:通过68比5的地标变换,提高面部对齐的精确度‌。
  7. ‌新模型支持‌:增加uniface_256模型,提供更高质量的换脸选项;集成yoloface作为默认的人脸检测器模型,提升检测效率‌。

换脸这个东西,起之前也尝试过faceswap,然而,这个东西使用起来的确麻烦,需要提供的素材数量比较多,训练过程比较繁琐,并且最终的效果在样本数量不够大的时候就会发现实际效果一般:

让自己变成AV的主角【faceswap】

当然,图片换脸目前腾讯元宝提供了免费的传图换脸的功能,整体效果还是挺不错的。下面的是基于腾讯元宝来实现的:

不过,对于视频换脸的免费工具(手机上可用的),目前我还没发现,前端时间看到这个东西,于是尝试了一下。网上有个facefusion2.6.1压缩包版本,实际下载安装后,效果一般,由于缺少文件会导致无法运行,如果要使用的话,复制一个png文件,放到facefusion2.6.1\dependency\res目录下,命名为main.png即可。在运行过程中会显示这个图片。

之前还下载了一个DeepFaceLab_NVIDIA_RTX3000_series,这个东西要用比较麻烦的一点在于,只能靠命令一条一条的执行,看着目录下的文件就感觉头大了。

最终还是决定尝试下FaceFusion的最新版本,安装可以参考这个链接:Installation | FaceFusion

最简单方法,访问这个链接购买安装包:Windows Installer 20美元,解决了后面全部的问题。如果不想花20,那么继续往下看。

具体的步骤简单概述,以win11为准:

1.安装git conda ffmpeg

GIT
winget install -e --id Git.Git
Conda
winget install -e --id Anaconda.Miniconda3 --override "/AddToPath=1"
FFmpeg
winget install -e --id Gyan.FFmpeg

conda安装之后配置环境路径,添加到path下:

重启powershell继续后面的操作。

2.准备conda环境:

Initialize conda for your terminal:
conda init --all
Create the environment:
conda create --name facefusion python=3.12 pip=25.0
Activate the environment:
conda activate facefusion

3.安装gpu支持,我只有conda:

conda install conda-forge::cuda-runtime=12.8.1 conda-forge::cudnn=9.8.0.87

4.下载代码

git clone https://gitee.com/facefusion/facefusion
cd facefusion

5.安装(cuda)

python install.py --onnxruntime cuda

6.重新激活环境:

conda deactivate
conda activate facefusion

7.运行系统:

python facefusion.py run --open-browser

启动之后会自动下载各种特征文件,如果下载不动就多试几次,或者尝试挂个全局代理

现在就可以尝试换脸了:

按图选择模块进行换脸,此时就完成之后就可以下载了:

实际效果:

另外一个视频520AM:

实际效果就是这样的,不过安装的时候需要注意用户名路径不要存在中文。另外,这个东西貌似处理a片有问题,会报下面的错误,感觉还是视频文件问题,谁知道怎么解决的还望不吝赐教:

Traceback (most recent call last):
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\queueing.py", line 625, in process_events
    response = await route_utils.call_process_api(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\route_utils.py", line 322, in call_process_api
    output = await app.get_blocks().process_api(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\blocks.py", line 2146, in process_api
    result = await self.call_function(
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\blocks.py", line 1664, in call_function
    prediction = await anyio.to_thread.run_sync(  # type: ignore
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\to_thread.py", line 56, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\_backends\_asyncio.py", line 2470, in run_sync_in_worker_thread
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\anyio\_backends\_asyncio.py", line 967, in run
    result = context.run(func, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\obaby\.conda\envs\facefusion\Lib\site-packages\gradio\utils.py", line 884, in wrapper
    response = f(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\uis\components\job_runner.py", line 91, in run
    if job_id and job_runner.run_job(job_id, process_step):
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 11, in run_job
    if run_steps(job_id, process_step) and finalize_steps(job_id):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 72, in run_steps
    if not run_step(job_id, index, step, process_step):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\jobs\job_runner.py", line 58, in run_step
    if job_manager.set_step_status(job_id, step_index, 'started') and process_step(job_id, step_index, step_args):
                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 323, in process_step
    error_code = conditional_process()
                 ^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 340, in conditional_process
    return process_video(start_time)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\core.py", line 418, in process_video
    if analyse_video(state_manager.get_item('target_path'), trim_frame_start, trim_frame_end):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 102, in analyse_video
    if analyse_frame(vision_frame):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 77, in analyse_frame
    nsfw_scores = detect_nsfw(vision_frame)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\content_analyser.py", line 115, in detect_nsfw
    temp_vision_frame = fit_frame(vision_frame, model_size)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\facefusion3\facefusion\facefusion\vision.py", line 243, in fit_frame
    height, width = vision_frame.shape[:2]
                    ^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'shape'

 

系统默认缓存目录为:

C:\Users\obaby\AppData\Local\Temp\facefusion

要修改这个路径,修改 facefusion.ini文件:

[paths]
temp_path = ./temp
jobs_path =
source_paths =
target_path =
output_path =

修改完重启即可:

2.6.1版本安装包:

https://www.123pan.com/s/5DsaTd-5YGc.html

链接:https://pan.quark.cn/s/11bffd2d5993
提取码:ankQ

The post FaceFusion 3.2.0 — 免费AI换脸工具初体验 appeared first on obaby@mars.

腾讯开源!双模式切换+实时协作,NAS部署QBin,极简却不简单

亲爱的粉丝朋友们好啊!今天熊猫又来介绍好玩有趣的Docker项目了,喜欢的记得点个关注哦!

引言

作为国内知名的大厂,鹅厂在国内的风评一直不是特别友好,但这其实完全是因为在游戏圈干的事造成的,仔细翻翻腾讯的github就能发现腾讯其实开源了很多项目,其中不乏一些优质好用的项目,例如腾讯开源的Markdown编辑器——cherry-markdown。
项目页

但你以为熊猫这次要介绍的就是它?错了,cherry-markdown非常好用,但目前不支持Docker部署,且熊猫也没看到有人将其打包为镜像,熊猫也是懒狗,所以也懒得去打包镜像。但因为其开源加上非常好用的原因,围绕cherry-markdown又诞生了非常多好用的开源项目,这里要介绍的便是今天的主角——Qbin。
Qbin界面

项目介绍

QBin 致力于打造一个「快速、安全、便捷」的在线编辑与内容分享平台,适用于个人笔记、临时存储、多人协作、跨平台分享等多样化场景。

  • 前端完全使用 HTML、JavaScript 和 CSS 构建,不依赖臃肿框架,集成了 Monaco 代码编辑器、Cherry Markdown 渲染器和通用编辑器,全面适配各种内容创作需求;
  • 后端基于 Deno 的 Oak 框架搭配 Drizzle ORM,同时利用 Deno KV 和 Edge Cache 实现多级缓存机制,读写性能表现优异;
  • 支持 PWA 和 IndexedDB,即使在断网状态下也能继续编辑、保存并预览内容;
  • 可自定义访问路径、设置密码和过期时间,在保障隐私的前提下实现灵活分享;
  • 相较于传统 PasteBin,QBin 在编辑功能、安全机制和可扩展性方面都有显著提升。
    项目特性

项目部署

QBin支持SQlite数据库,也支持用PostgreSQL作为数据库,这里为了快速展示,熊猫就采用SQlite的方式部署,如果有需要独立数据库支持的,可以去项目页查看详细的文档(https://github.com/Quick-Bin)。

本次用到设备为绿联NAS,通过compose配置文件进行部署,在项目中新建项目,输入以下代码,其中一些映射项目需要你根据自身的NAS环境进行更改,例如端口或者文件夹映射目录等等。

services:

  qbin:

    image: naiher/qbin:latest

    container_name: qbin-app

    restart: always

    environment:

      # 必选环境变量

      - ADMIN_EMAIL=admin@qbin.github  # 请修改为你的邮箱

      - ADMIN_PASSWORD=qbin  # 请修改为安全的密码

      - JWT_SECRET=change_this_to_a_secure_random_string  # 请修改为随机安全字符串

  

      # 可选环境变量

      - PORT=8000

      - TOKEN_EXPIRE=31536000

      - MAX_UPLOAD_FILE_SIZE=52428800

      - DB_CLIENT=sqlite

      - DATABASE_URL="file:/app/src/qbin_local.db"

  

    volumes:

      - qbin-data:/app/src  # 持久化存储数据库文件

    ports:

      - "8000:8000"

    networks:

      - qbin-network

    healthcheck:

      test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"]

      interval: 30s

      timeout: 10s

      retries: 3

      start_period: 20s

  

volumes:

  qbin-data:  # 定义用于存储SQLite数据库的卷

    driver: local

  

networks:

  qbin-network:

    driver: bridge

    internal: false

如果用SQlite作为数据库,需要注释掉DATABASE_URL,反之则注释掉DB_CLIENT,具体根据自身需求来设置即可,以上代码只是作为例子,一定要切记更改其中的内容。
项目例子

确定好所有的变量以及映射之后点击立即部署,绿联会自动拉取并根据参数部署项目,这时候我们注意查看日志,出现这样的字样也就代表项目部署成功了。
项目日志

项目体验

来到项目界面,整个界面非常简洁,首页有三种编辑器选择,请分别是通用编辑器、code代码编辑器以及Markdown编辑器,根据需求选择不同的编辑器就行。
编辑器界面

左边菜单的分享和回收站功能暂未开放,毕竟项目还是比较新的,期待后续开发,存储管理中因为是新建项目,所以没有任何内容。
存储管理

熊猫经常用的是Markdown编辑器,点击之后会跳转到markd编辑器界面,整个界面采用的就是腾讯开源的cherry-markdown作为框架和渲染效果。
编辑器

编辑器除了支持常规的Markdown语法,还支持各种文件的插入,例如表格、pdf、word甚至文件,预览界面也做了渲染优化。
编辑器介绍

右上方直接字数统计,同时通过设置菜单可进行一键编辑器切换,切换的同时内容会自动跟随进行格式转换,文件也支持访问加密。
编辑器设置

写在最后

项目处于初期阶段,很多东西还并不完善,甚至连UI其实都比较简陋,但能看出来底子还是不错的,感兴趣的可以自部署尝试。

以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
尾图

宝界晴澜映蠡畔

九〇后大妹子同事闪婚闪育,一年搞定人生五件事!(请至今单身的博友自觉面壁😌)今日她邀请亲朋好友去蠡湖畔宝界商会 […]

两则 VPS 消息:CloudCone 取消 7 天无理由退款和DMIT 机房断电的补偿方案

今天发布两则 VPS 的消息,也是我们之前推荐的国外的 VPS 服务器

CloudCone 取消 7 天无理由退款

原文地址:https://news.cloudcone.com/upcoming-changes-on-our-7-day-money-back-guarantee-policy-1erkjK

简单翻译一下,大概的意思是:

自2025年6月7日起,CloudCone的7天退款保证政策将进行调整(其实就是取消),调整后,大多数产品将默认不支持退款,包括新订单、续费、升级和附加服务的付款,但是账户中的"可用余额"仍可申请退款。

CloudCone 为什么要这么做的呢?可能「无理由退款」被滥用了,扛不住了。所以官方也建议,以后不要年付,所需主机,可以先从月付方案开启。

DMIT 机房断电的补偿方案

  • 时间:北京 2025年05月07日 上午 7时 30 分左右(洛杉矶时间:2025年5月6日 下午16:30左右)
  • 位置:美国加利福尼亚州洛杉矶市 West 7 Center 大楼 数据中心
  • 事件:位于美国加利福尼亚州洛杉矶市的 因不明原因触发火警,数据中心的消防系统自动启动,所有机柜的电源被切断,导致数据中心内的所有服务器和网络设备全部断电;由于数据中心内的 UPS 电池组在火警触发后也被切断电源,导致 UPS 无法正常工作。

DMIT在数据中心故障后,第一时间派遣工程师赶赴现场进行调查,并且在他们的TG频道进行了跟踪报道,这点是非常值得好评的~

原文的补偿方案比较长,原文链接(https://t.me/DMIT_INC_CN/834)简单总结下:

DMIT 的 SLA 是 99%,即年故障时间不超过 87.6 小时(约 3.65 天),DMIT这次还是比较良心的,故障率没有超过SLA 99%的保障,还是决定进行补偿(5天余额+10%优惠):

1. 补偿5天的续费价值(低于0.5 USD,按照0.5 USD);

2. 存量用户期限内,可以使用 2025-EXISTING-CUSTOMER-10OFF 优惠码享受 10% 的折扣(可用于特价产品或资格订单);

  • 存量用户6月30号前,如果有活动产品,可以享受活动价10%优惠;
  • 之前清退产品的用户,本身可以申请比活动价更低的折扣(部分产品除外),现在还能折上折,再叠10%优惠!

反观搬瓦工99.5%、99.9%的 SLA 保障,但没有什么动静(不过人家倒是第一时间修复上线,快了30分钟左右)。

自然(第35期):文笔湖畔 蓝天白云 玩水 采摘梅子

醒来,习惯性打开笔记本电脑,屏幕慢悠悠的唤醒输入密码界面。有些不耐心,干脆拿起手机打开企业微信,如预料总有些不上心游客,不看景区短信、不看我写的PDF攻略、甚至不看我发的微信信息,问三宝哪里领取?没有开门怎么办?

简短处理后,再看下时间6:32分,是日出时间,是游客们喜欢的玉龙雪山日照金山时间。穿衣、穿鞋上屋顶,拿起手机光线调到最暗,现在我最喜欢黑了,即使已经很亮,有意调节,黑的没天亮似的。

一边是日出,一边是日照金山,玉龙雪山太普通了,日照金山也是,日出倒是蛮有兴趣,从日出和天空看得出今天必定是个大好晴天。

{flex}
20250510104729.jpg
20250510104746.jpg
20250510104753.jpg
{/flex}

回屋开始新的一天,统计记录、复盘分析、记账....然后是常规起床仪式(洗漱、收拾...)。天很亮了,已经有了各种噪音,对面山里各种鸟也开始叫了起来。简单休息下,下楼看看断舍离后剩下的花草树木,除草、松土、修剪、浇水、施肥、填土,一系列完成已经十点多些。

阳光真暖和,没有一点乌云,温度也高,蓝天白云的漂亮极了,不带娃玩玩水,实在可惜。


隐私保护:因涉及隐私内容RSS已做隐藏,请通过原文链接阅读更多
版权声明:如无注明均为原创,未经允许不得任何形式转载
原文链接自然(第35期):文笔湖畔 蓝天白云 玩水 采摘梅子

人在路上行走,也需要有安全距离了!

在法律上,《中华人民共和国道路交通安全法实施条例》第八十条规定:机动车在高速公路上行驶,车速超过每小时100公里时,应当与同车道前车保持100米以上的距离,车速低于每小时100公里时,与同车道前车距离可以适当缩短,但最小距离不得少于50米。

这是国家颁布的道路安全法的规定,但是没规定行人之间的距离。但是青岛法院提出行人需保持“2-3米安全距离”

试问,以后在地铁上,公交车上,是否都要起码相隔2米了?

行人的安全距离

[...]

《树莓派不吃灰》032:基于Deepseek每天自动算八字,自动生成最合适的摆件显示在办公桌

我有个朋友,喜欢在桌面搞点风水摆件,提升运势,我感觉这东西虽然玄学,但确实能提供心理安慰的作用,让人心情愉悦。 于是,我打算搞一个电子风水摆件,录入自己的八字信息,每天自动调用满血版DeepSeek,计算今天最适合的风水摆件,并通过屏幕展示在桌面上。为了避免过于单调,还可以让Deepseek大模型把今天中午适合吃什么,今天适合联系哪些朋友,今天幸运数字是什么,今天的幸运色是什么,变成一个个小建议轮播到屏幕上! 风水摆件所需原料及售价: 能运行浏览器的开发板(树莓派,香橙派都可以,小黄鱼树莓派3b基本100块搞定,丰俭由人) 带触控的屏幕(拼夕夕一手7寸5点屏幕售价100块,小黄鱼还能再打8折) DeepSeek按量付费的token(充10块钱,一年用不完) 经过五一劳动节的劳动,已经搞得差不多 在线体验地址 http://fangyuanxiaozhan.com:4000/register 进入网页后,需要录入出生日期和时间,方便大模型八字获取八字信息(点击圆形头像,有惊喜🕶) 点击注册后,程序会自动跳转到一个url,这个网页的url可以放到树莓派浏览器打开,每天的零点后,浏览器会自动刷新,重新计算当天运势;(底部有个输入框,里面有塔罗占卜,今天适合听什么歌的预制对话,也可以随意提问,和大模型Chat的玩法基本一样) 点击右上角的「进入玄修」,就会进入风水摆件页面,风水摆件会有一个闪着光晕的细腻动画。 实机运行效果如下(画面被压缩了,实际效果好很多,一度引起办公室众多玄学爱好者的围观) 运维老哥点了一根烟,说起了不足为外人道的绝密往事 去年底阿里云状况频发,新加坡的某个机房着火,两个星期才勉强恢复,这可能不是技术问题,而是风水问题。 如果你是一个二手电子垃圾爱好者,或者运维老哥,也可以将风水摆件放到机房,机魂大悦,让你一觉到天明。 我为我的二手硬件小机房,添加了一个风水摆件,内网穿透的成功率变高了很多😁 (信则有,不信则无)。 后续计划,搞个更酷的电子潮玩版本 我打算用分光棱镜做个更酷的简化版本,Demo如下图所示,可以显示有限的文字,依然是每天占卜,给出建议,成本基本在100块以内,而且会非常省电。作为电子潮玩售卖,图一乐! 小结 如果把制作玄学摆件作为一个创业项目,应该被归类为图一乐的类别,他能为使用者带来乐子,也能给创业者带来乐子! 如果有人愿意为玄学摆件付费,那真的是非常理想的创业项目;世界上从不缺少让人紧绷的创业项目,这些项目大多也会失败,玄学摆件不需要参与者紧绷,疗效信则有,不信则无。 只是单纯的好玩(^-^)V。 本文永久更新地址: https://v2fy.com/p/2025-05-10-11-29-25-fortune/

家长会

女儿上了初中后家长会都要我去参加,算下来初一还没完有参加了 4 场了吧。 我女儿最大的问题遗传我——自律性差,属于那种有人看着成绩都还行,如果能发挥主观能动性成绩就能很优秀的。基因带出来的问题,最难解决,得等她自己觉悟。 所以我参加家长会基本就是走过场,坐那里听着就好,至于会后留下来找老师是一次都没有,况且每次家长会开完都很迟。 几次家长会参加下来给我最大的感触就是,学校迫切希望家长能将自己的孩子教育的规规矩矩,送到学校后就是乖乖学习,不惹是生非不让老师苦恼。然后呈现出一种矛盾的状态,家长会上老师一边讲学生的哪些坏习惯坏毛病以及学习上的哪些不足,一边呢又怕家长回去手段粗糙,讲心理讲青春期讲换位思考讲爱讲陪伴讲鼓励等等等等。 所以前面说家长回去要管教好孩子后面又说回去后不能乱管教孩子,这前后一抵消,感觉家长会白开了。我不信能做到老师说的一半方法的家长,孩子会差到让老师强烈要求家长好好管管,还不如直接让他们回家揍一顿孩子呢。 说的不好听点,现在的孩子大多宠溺过度,多多少少缺乏教养,老师又选择和他们“交朋友”的方式教育,就有点“割肉饲鹰”,等着他们感动的老和尚式感化行为。我的印象里自己小时候哪有那么复杂,不听话老师罚站罚抄罚课后留下来,不行就加家长,过分了家里就打一顿,也不知道那时候的家长会老师讲什么。印象中有一次考的很差我爸爸参加完家长会回来脸色就很难看,倒也没打我,不知道是不是家长会向来如此。

一杯酒,一家人

不得不感叹,时间过得可真快,感觉才刚到25年,没想到已经距离年中不远了,这不生日也到了,由于是工作日,所以晚上到家也七点了,妈妈给做了菜,然后媳妇儿从公司点了两个菜,买了蛋糕,一家人一起吃个饭,既简单又实在,美中不足的是父亲没到场(上班,没有假期)。 也是开了瓶12年的白云边庆祝下,虽只有我一人饮酒,其它人也都喝饮料作陪,给闺女准备了金豆芽饮品,她也频繁跑上来跟我碰杯,虽然她还不太会表达,但看得出来,她很开心,不光有喝的,一会儿还有蛋糕可以吃,我们吃着饭,她围着桌子蹦蹦跳跳的,气氛格外融洽。 按道理说,今天也是闺女阳历生日,碰到一起了,所以就一起过了,自然蛋糕也要偏向于孩子风格,所以选了这个粉色系列,插上18岁的两根蜡烛,今年比较贪心,许了很多愿望,不敢奢求太多,只求一家人在往后的日子里 平安喜乐 即可。 我是一个感性的人,有时候看一些短视频,看着看着眼眶就湿润了,我也不知道为什么。 我一直觉得人的一生其实很短暂,悄悄把我们从看故事的人,变成了故事里的人。那些曾经让我们落泪的画面,如今正在我们自己的人生里一帧帧上演。这大概就是成长的滋味吧——既熟悉又陌生,既温暖又带着些许酸涩。

重庆之记录一下

重庆之记录一下。虽然坐过无数次了,但每次经过这里,都会无意识地拿出手机记录一下。或许是因为天气好的缘故吧。😅😅😅

非洲蜗牛噩梦

自从五一之前,我宿舍的洗手间连续两天被非洲蜗牛乱入以后,我整个脑子都离不开那个生物了。以前我只是觉得那恶心。下雨过后单位现场的人行道上会爬满那些东西,一不小心就踩扁了。如果是走路,还可以避让,如果是骑自行车,可能是随便就扁了。除了在现场的那条人行道上,办公楼1楼的墙上窗上都是那些东西,连廊上也有很多,走廊可能也会有。之前我只是觉得恶心,毕竟在那些场景,我还可以绕开不碰它们,也不整它们,但现在它们直接找上门了。我的宿舍在2楼,它们居然爬到那么高的地方。为什么要爬那么高呢?

为什么它们会攻击我的洗手间呢?其实我也不确定那是不是同一只。因为第1天早上我只是拿了个牙刷把它戳出去了。第1次见到的时候,那只蜗牛正在我洗手间的窗框上爬行。我进到洗手间,坐在马桶上的时候,就看到它了。一边方便,我一边就在想用什么东西把它整走。想了半天,最后想到牺牲一根旧牙刷。把它戳走不是一件容易的事,感觉它吸得很紧。就那么一刹那,可能它放松了,然后它就被戳出去了,但我不确定到底是不是只是到了窗台下面的那个放空调主机的平台上,当时我根本没心情看一眼,如果当时我足够冷静,我肯定会去看一眼,看它是不是在那个地方,如果是的话就直接拿花洒用最高水压把它冲走,那么它就直接可以从2楼回到1楼了,但我没检查。我只是开了花洒,把牙刷洗了,把窗台洗了。这样的疏忽可能就导致了第2天晚上当我回到宿舍,发现它已经爬进我的洗手间,爬到了我的地拖桶旁边。那条可能是它爬行轨迹的路上,还有一坨屎。这一波恶心比上一波更严重,我只想着怎么把它弄走,后来想到的是用垃圾铲。把蜗牛铲走,也把它的大便铲走。铲蜗牛比较容易,铲大便真的是费了一番功夫。后来我又观察了一番,其实可能那个蜗牛早就来过了,但不是洗手间爱你。因为我阳台封闭的那个玻璃角落也有一滩蜗牛大便,为什么它非得爬上来呢?

那天晚上的恶心真的不轻。我知道非洲蜗牛不是什么好东西,我知道它的大便不是什么好东西,我知道它爬过的那些粘液也不是好东西,所以直到现在,我依然对那个地拖桶心有余悸。虽然从那个时候到现在,我已经用冷水热水把那个地拖桶洗了好多遍,也喷了好多遍医用酒精。从那次看到到现在为止,已经过去了超过一周,但每一次拖地,每一次要碰到大概那个区域的时候,我都仍然忐忑。

蜗牛入户的那天晚上,我把本来装着过期84低浓度消毒水那个瓶子里面的液体全部倒光,然后配了一瓶高浓度的盐水。把我洗手间的那个窗,无论是窗框还是瓷砖壁,全部都喷上。这就等于是在那个窗上布下一个结界。理论上蜗牛很害怕盐,它不会冒然越过那道红线,它没必要这样虐自己,但难点就在于。每天都下雨,而且雨下得很大,盐水的确喷上去了,盐水干了以后,的确是能摸到盐粒的,但关键是一下雨,水一稀释,结界就变得荡然无存。我的结界到底能不能防住蜗牛呢?我不知道。所以每次打开洗手间那个门的时候,我都是四处张望一下。我真不知道,到底有没有蜗牛进去了,有没有躲在什么地方。每次进去的时候都进行这种操作,我觉得自己神经质了。

正常的人又怎么会无端端担心蜗牛会爬到自己屋里去,但如果你有过我这样的经历,你不可能不忐忑,尤其是现在经常下雨,室内室外都很潮湿,温度又刚好是蜗牛最喜欢的那个范围。

OneKey Pro & Classic 1S 双机评测:从旗舰到入门,哪一款更适合你?

特别九折优惠

通过下面购买链接购买,在结账时会自动添加优惠码APPDO,享受Onekey全线产品九五折优惠。

专属优惠链接:https://onekey.so/r/APPDO

个人补贴:作为Onekey大使,我将从我的分成中再补贴你 5%,做到九折优惠。请你购买后联系 Telegram Bot:@appdo_bot

Onekey是什么?

在正式开箱前,先来回答一个关键问题:OneKey 是什么?

OneKey 是一款华语区广受欢迎的硬件钱包品牌,主打「安全易用、生态完整、支持多端」的加密资产管理体验。它的核心理念是让更多用户以更低的门槛使用上专业级别的冷钱包工具,无论是新手入门还是资深用户都能找到适合自己的型号。OneKey 产品线支持二维码隔离、蓝牙通信、USB-C 连接等主流交互方式,并内置 EAL6+ 安全芯片,确保私钥始终离线保存,杜绝网络攻击风险。对于希望兼顾安全性与操作便利性的用户来说,OneKey 是冷钱包赛道中极具代表性的全场景解决方案。

OneKey Pro:从包装开始的旗舰安全体验

在当前硬件钱包市场中,用户常常需要在「安全性」与「易用性」之间做出权衡。OneKey 作为华语区知名的硬件钱包品牌,推出了 OneKey Pro 和 OneKey Classic 1S (以及新推出的Classic 1S Pure )两款产品,分别面向高端用户和入门用户。本文将从开箱体验、使用流程、适用场景等方面,对这两款产品进行详细评测,帮助用户根据自身需求做出选择。

DSC04264.jpg

OneKey Pro 的外包装采用全黑磨砂硬纸盒设计,正面印有产品渲染图与“Crypto Hardware Wallet”字样,简约而克制。在包装右下角,“EAL6+” 安全芯片认证标识清晰可见,为即将上手的用户传递出强烈的“安全”信号。

DSC04263.jpg

令人印象深刻的是,OneKey Pro 的包装并非简单纸盒,而是加装了塑封封膜和一次性撕拉胶条。这种设计不仅起到了防尘密封的作用,更重要的是它内嵌了自毁型防拆封设计——撕开即损的封条一旦断裂,将无法还原,用户可以一眼识别设备是否被提前开启,有效防止供应链攻击或中间人攻击带来的风险。

在硬件钱包领域,这种对“交付安全”细节的关注,体现出 OneKey 对产品从出厂到用户手中“全过程防护”的理念。对于追求极致安全的加密资产用户来说,这种开箱前的可验证性,已经是整个使用体验的重要组成部分。

DSC04268.jpg

撕开一次性封条,抽出内盒,映入眼帘的正是 OneKey Pro 本体。不仅外包装具备一次性撕毁封膜,OneKey Pro 在设备本体上也设置了专属安全封条。只要封条被揭开,表面图案会立即发生变化,用户可以一眼识别设备是否曾被开启或调包。这一机制确保了即便设备在海外仓储或跨境运输过程中遭遇海关开箱检查,用户依然可以在第一时间辨别设备完整性。

DSC04286.jpg

在本体之外,是一抹辨识度极高的荧光绿色——这是OneKey 的品牌代表色。绿色的封套内整齐收纳了所有随机附带物品,包括:

  • 编织工艺的 USB-C 数据线,这相比同类产品附送的普通数据线来说加长了使用寿命;

  • 三张助记词卡片,便于用户手写备份助记词;

  • 产品说明书,简洁明了地引导用户完成初始化流程;

  • OneKey 品牌贴纸,采用了镭射设计,为用户留出个性化装饰空间。

整个配件包装都有一种简洁的美感,延续了 OneKey 对安全与美学并重的理念。醒目的绿色传达视觉识别度,实用配件确保使用闭环,甚至连数据线的耐用性也未被忽视。

DSC04273.jpg

OneKey Pro有黑白两款可供选择,我收到的是经典的黑色款 。拿起OneKey Pro本体,纹理磨砂玻璃背板搭配光面铝合金设计 ,拿在手里感觉质感非常好,有点像高端智能手机的触感 。尺寸小巧,官方数据是 90.1 x 54.4 x 7.6 毫米,重量也只有65克 ,非常便携。

OneKey Pro最大的设计亮点就是采用了一块大尺寸触控屏幕,搭配高亮度显示和直观交互 UI,在离线签名、助记词生成等关键操作中,信息读取清晰直观。

DSC04296.jpg

背部配置有高清摄像头,支持扫描动态二维码,用于与 App 或网页钱包进行“Air-Gapped”通信。在交易授权时,用户只需将 OneKey Pro 对准屏幕,扫描页面生成的二维码,即可完成签名与授权,整个过程无须连接网络或插入数据线,有效避免 USB 通道劫持等常见攻击风险。

此外,OneKey Pro 还支持指纹解锁功能,生物识别信息储存在安全芯片中,进一步提高日常操作的便捷性与防护等级;支持Qi 无线充电,搭配给手机无线充电的底座,非常方便。

总的来说,OneKey Pro 的开箱体验非常棒。从包装的安全性到产品本身的设计和质感,都给人一种专业和高端的感觉。接下来,就该开始我的“Web3 作业”,好好设置一下这个新伙伴了!

DSC04294.jpg

拿起 OneKey Pro 本体,长按右侧电源键约 3~4 秒,屏幕随即点亮,进入初始设置界面。在选择系统语言后,正式进入钱包创建流程。

接下来,你可以选择「创建新钱包」或「恢复已有钱包」。作为全新设备,此处我们选择前者。OneKey Pro 将引导你选择助记词长度,推荐根据个人偏好选择,助记词越长,安全性越高。

确认后,设备将提示你设置 PIN 码,用于日常操作和交易签名时的身份验证。在PIN 设置完成后,OneKey Pro 会在屏幕上依次显示你的助记词。此时建议准备好包装盒中附带的助记词卡片,将每一个单词按顺序手动抄写下来。在助记词抄写完毕后,设备会要求你对其进行验证,确认你已完整备份。

⚠️ 重要提醒:这组助记词是你唯一的资产恢复方式,请务必离线保存,不要拍照或上传云端。一旦泄露,意味着你的资产将完全暴露。

DSC04299.jpg

在钱包创建完毕后,你可以选择将 OneKey Pro 与 OneKey App进行配对。使用包装内的数据线连接电脑,按照 App 指引完成识别与绑定。App 会显示当前钱包地址,OneKey Pro 屏幕也会同步显示相同地址,建议仔细核对两者是否一致,以排除中间人攻击等安全隐患。

到此为止,你的 OneKey Pro 就已经完成基础配置,可以正式进入资产管理与离线签名的安全操作流程。

实际使用体验

DSC04290.jpg

在完成初始设置之后,OneKey Pro 的正式使用环节显得格外丝滑且安心。它不仅延续了硬件钱包的核心优势——离线签名,更在二维码交互与蓝牙连接这两个方向上提供了不同层级的操作体验,满足从「冷存储」到「日常交易」的多样化需求。

二维码签名:极致离线,守住最后一道防线

OneKey Pro 支持完整的“Air-gapped”二维码签名流程。在需要进行交易授权时,App 会生成一个包含完整交易信息的动态二维码,用户只需使用 OneKey Pro 背部的摄像头扫描该二维码,随后设备会在本地生成签名后的二维码返回,用户再用 App 扫描回传即可完成广播。

整个过程没有蓝牙、没有 USB 线缆,甚至设备从未接入过网络。这种真正物理隔离的签名机制,大大降低了私钥遭遇远程攻击的风险,是长期持仓或执行高额交易时的首选交互方式。

这种模式更适用于专业投资者、DeFi 多签管理者等对「冷隔离」有高要求的用户。

蓝牙连接:操作流畅,适配日常交易节奏

对频繁使用加密资产的用户来说,蓝牙模式则显得更为高效。OneKey Pro 内置低功耗蓝牙模块,可与 OneKey App 快速配对,完成资产查看、交易发起、离线签名等操作。

例如在移动端发起转账后,App 会通过蓝牙将交易信息推送至 OneKey Pro,设备立即弹出核验界面,用户核对金额与地址无误后输入 PIN 或通过指纹识别完成签名,签名结果将自动回传至 App 并完成交易广播。

实际使用中,整个交互过程基本在 10~15 秒内完成,极具“即点即签”的响应速度。这种模式特别适合:高频转账、授权的 DeFi 用户;常用手机钱包进行资产管理的用户;需要在出行、移动场景中完成签名操作的用户。

蓝牙连接配对逻辑清晰,支持绑定设备名称识别、配对码确认等机制,确保链路安全。即使在蓝牙环境下,私钥依然始终保留在安全芯片内,不曾触网。

与同类产品比较:OneKey Pro 为何胜出?

DSC04338.jpg

在选择 OneKey Pro 之前,我也仔细研究了市面上其他几款主流硬件钱包,比如 Ledger、Trezor 和 Ellipal。它们各有特点,但在综合考量后,我认为 OneKey Pro 在以下几个方面更具吸引力:

顶级的安全配置

虽然 Ledger 和 Trezor 也是老牌硬件钱包,拥有不错的口碑,但在核心安全芯片的等级上,OneKey Pro 的 EAL 6+ 级别无疑更胜一筹。多颗安全芯片的配置也提供了额外的冗余和保障。

优秀的用户体验和功能性

OneKey Pro 拥有一个 3.5 英寸的彩色触摸大屏,操作直观便捷,比一些按键式操作的钱包体验要好很多。它支持指纹识别,不仅提升了安全性,也让日常操作更加方便快捷。同时,它支持蓝牙、USB 和摄像头(用于扫码)等多种连接方式,可以方便地与手机 App 或电脑客户端连接,管理资产非常灵活。它可以连接 Metamask 和 Rabby 等常用钱包插件,这对于 DeFi 用户来说非常友好。

全面的备份方案

DSC04314.jpg

OneKey Pro 支持使用 OneKey Lite 卡片进行助记词备份,这是一种基于 NFC 技术的备份方式,比传统的抄写助记词更便捷,也更易于安全保管。当然,在传统的助记词抄写备份的基础上,你还可以配合OneKey KeyTag 钛合金助记词备份板,这为追求极致安全的用户提供了更耐用的备份选择。

开源和社区支持

OneKey 的软件部分是开源的,这意味着代码接受社区的公开审计,透明度更高,也更容易发现和修复潜在的安全漏洞。同时,OneKey 拥有活跃的社区和较为完善的中文支持,对于国内用户来说,遇到问题更容易获得帮助。

持续创新和本土化优势

我从OneKey Mini就开始关注并且使用OneKey的产品了。OneKey 团队在产品功能和用户体验上持续投入研发,例如对多种公链和代币的支持、App 的不断迭代等。作为一家有中国背景的团队,OneKey 在产品设计和客户服务方面也更贴近中国用户的使用习惯。

当然,没有哪款产品是完美无缺的。但综合来看,OneKey Pro 在安全性、易用性、功能性和创新性之间取得了很好的平衡。它不仅拥有顶级的安全配置,还提供了流畅便捷的操作体验和丰富的功能支持。


OneKey Classic 1S:简约低调的性价比选择

DSC04326.jpg

由于Classic 1S和 Pro采用同样的设计语言,也配有自毁标签、安全封条等防供应链的安全手段,就连配件方面也和Pro保持一致,因此开箱部分不再赘述。

DSC04313.jpg

打开包装后首先看到的是 Classic 1S 设备本体,正面有一块小屏幕和几个实体按键,非常小巧轻薄,比我想象中还要精致一些。它虽然没有Pro的大屏交互,但依旧继承了 OneKey 家族核心的 EAL 6+ 安全芯片,更侧重于核心功能的实现和性价比,为更多人群提供了可靠的资产保护。

新成员:OneKey Classic 1S Pure (无电池版)

image.png

在撰写本文时,OneKey还推出了OneKey Classic 1S的无电池版本1S Pure。价格从 99 美元降低到了 79 美元。

无电池版本的推出,这意味着它在使用时必须通过 USB 连接供电。这样做的好处是进一步增加了设备的可靠性:消除了电池老化或故障带来的潜在问题。而去除电池后,成本也变得更低了,价格从 99 美元降低到了 79 美元。

对于那些主要在固定场所(例如家中或办公室的电脑旁)使用硬件钱包,并且对便携性要求不高的用户来说,Classic 1S Pure 版本可能是一个更纯粹、更经济的选择。它依然保留了 EAL 6+ 安全芯片的核心安全特性。


我该如何选择?针对不同人群的推荐

结合以上对 OneKey Classic 1S、OneKey Classic 1S Pure 以及 OneKey Pro 的分析,我为大家梳理一下针对不同人群的购买建议,希望能帮助大家做出更明智的选择:

追求顶级体验与全功能的用户 :

推荐一步到位,购买 OneKey Pro。

定位:你是加密资产的重度用户,管理着种类繁多或金额较大的资产,频繁进行 DeFi 交互、NFT 交易,或者对硬件钱包的交互体验有较高要求。

为什么选择 Pro:OneKey Pro 凭借其 3.5 英寸彩色触摸大屏提供了流畅直观的操作体验,类似于使用一部小型智能设备。指纹识别功能不仅增强了安全性,也使得解锁和授权交易更为便捷。内置摄像头方便扫描二维码进行转账或DApp连接,提升了操作效率。Pro 版本通常支持更广泛的币种和更复杂的链上交互,是追求极致功能和便捷性的用户的理想选择。虽然价格相对较高,但其提供的全面功能和优质体验物有所值。

注重核心安全与性价比,兼顾一定便携性的用户

推荐购买OneKey Classic 1S 标准版 ,也就是带电池的版本。

定位:你非常重视资产安全,希望拥有可靠的硬件钱包,但预算相对有限,或者认为 Pro 版本的某些高级功能对自己并非必需。你可能需要偶尔在外出时通过蓝牙连接手机 App 管理资产。

为什么选择 Classic 1S 标准版:Classic 1S 标准版同样配备了 EAL 6+ 安全芯片,在核心安全性上与 Pro 版本看齐。它通过实体按键操作,虽然不如触摸屏直观,但也足够清晰易用。内置电池和蓝牙功能使其具备一定的便携性,可以不依赖 USB 线连接手机 App 进行操作。对于大部分主流币种的管理和常规的转账签名需求,Classic 1S 标准版都能很好地满足,是一款性价比很高的选择。

追求极致性价比与简洁,主要在固定场所使用的用户

推荐购买OneKey Classic 1S Pure ,也就是无电池版本。

定位:你对硬件钱包的核心安全有刚需,但预算非常敏感,或者你主要在电脑旁使用硬件钱包,对便携性和蓝牙功能没有特别的要求。你偏好更轻薄、更“纯粹”的硬件设备。

为什么选择 Classic 1S Pure:Pure 版本在保留 EAL 6+ 安全芯片这一核心安全特性的前提下,取消了内置电池。这使得设备更加轻薄,也从根本上避免了电池老化带来的问题。由于必须通过 USB 连接供电和数据传输,它更适合在有电脑的固定环境中使用。如果你能接受这种使用方式,那么 Classic 1S Pure 将以更低的价格为你提供顶级的安全保障,是入门级用户或追求极致性价比用户的理想之选。 硬件钱包新手用户 (可从 Classic 1S Pure 或 Classic 1S 标准版入手):

写在最后

Onekey提供了本文所提到的所有产品,感谢Onekey的大力支持。

OneKey Pro 和 Classic 1S,就像冷钱包世界里的两位性格截然不同的守门人。

Pro 是那个全副武装、戒备森严的老朋友:指纹识别、安全芯片、无线充电、二维码签名……哪怕你把资产藏进深山,它也能默默守好那串助记词,一丝不苟,哪怕多按一个按钮,也宁可多一道防线。

而 1S,则是那个性价比拉满、轻量又可靠的新朋友:功能够用,配置不花哨,却足以覆盖日常使用场景,尤其适合刚刚开始认真对待加密资产的用户,作为第一台硬件钱包再合适不过。

安全、体验、价格,三者从不易兼得,但 OneKey 的这两款产品恰好在不同的侧重点之间,提供了一个令人满意的答案。你可以选择用 Pro 去构筑自己的“加密保险库”,也可以用 1S 搭建一个“够用、安心、不复杂”的资产安全起点。

选择哪一款,其实取决于你,和你想要把加密资产带到多远的地方。如果你正在寻找一款能够兼顾安全性、便捷性、可验证性的硬件钱包,OneKey的产品值得你认真考虑。

特别九折优惠

通过下面购买链接购买,在结账时会自动添加优惠码APPDO,享受 Onekey全线产品九五折优惠。

专属优惠链接:https://onekey.so/r/APPDO

个人补贴:作为Onekey大使,我将从我的分成中再补贴你 5%,做到九折优惠。请你购买后联系 Telegram Bot:@appdo_bot


Support on Patreon | 爱发电上赞助

楠溪江自驾Day4 - 林坑古村落

本文记录了楠溪江自驾游第四天的行程,包括探访暨家寨的宁静美景、林坑古村的古朴建筑、屿北村的千年历史以及苍坡古村的夜晚。沿途体验了自然与人文的完美结合,感受了永嘉县独特的风景与文化。

【日记】2025.05.09

1.小众UP主 最近在B站发现了一个UP主,主要是讲医疗方面的事情的,叫做医疗三棱镜,他最新的一期视频讲的是《什么是药》,在视频结尾的时候提出了一个问题,说“究竟是药在维持健康?还是在用健康的名义维持着对药物的依赖?” 不得不说,这个问题还是有点意思的,一下子还真的想不明白。 然后我给林檎同学分享了一个视频,是《中国公民在菲律宾遭绑架遇害事件》,我看到这个视频的原因是因为我之前关注了这个 UP 主,一个原因是动画做的确实很好,而且还能看到一些奇妙的事件。然后林檎同学就说,播放量99,评论1,觉得我看得过于小众了。 至于为什么看到这个UP主,是因为之前他做过《北京地铁昌平线“12·14”列车追尾事故分析》,无论怎么说地铁发生这种事件还是挺让人悲伤的。每次的事故之后,运营公司都会变得十分谨慎,生怕再出事。这也算一件好事吧(虽然可能会带来一些不便)。(虽然我现在看到北京地铁就想起“西溜线”) 可 […]

谈谈法律自创生理论

法律自创生理论在有的文献中被描述为一种先验哲学,完全不是经验性的观察。我们了解到,其实这种理论实际上从法律实证主义提供的法律体系图景开始它的工作的,并有意整合了法律现实主义的一些优点。这篇文章试图更准确呈现法律实证主义的图景,因而甚至比法律自创生理论更准确呈现了它的问题意识起点,所以不但有望使读者更加准确把握法律自创生理论的理论图景,也通过这种更准确的对照,尝试发现它的可能问题。

FileCodeBox:告别网盘烦恼,安全高效的文件分享神器

在日常工作生活中,处理敏感项目文件时,担心文件被第三方泄露; 使用第三方网盘时还要下载客户端(客户端有时还给你偷跑流量,美名加速),有时下载还得开会员。如果有这些问题的话,我强烈安利一款开源利器——FileCodeBox!它开源、好用、安全,完美解决文件分享的各种难题,让你轻松搞定工作和生活中的文件传输。

开源地址

  • 代码仓库 vastsa/FileCodeBox
  • 镜像地址: lanol/filecodebox
  • 国内镜像: ccr.ccs.tencentyun.com/k7scn/filecodebox

三大优势,解决分享痛点

FileCodeBox 专为文件分享的痛点设计,简单几步就能让你的分享体验焕然一新

超快传输,省时省心

速度取决于你的网络带宽

  • 无大小限制:无论是高清设计稿还是海量项目文件,统统支持,轻松上传
  • 拖拽即传:无需压缩打包,直接拖文件到页面,秒速完成上传
  • 批量分享:支持多文件同时上传和分享,项目交付、团队协作 so easy!

安全可靠,隐私无忧

  • 加密保护:分享链接全程加密,只有指定接收者才能访问,杜绝泄露风险
  • 阅后即焚:支持设置文件过期时间,自动删除,防止资料被长期留存
  • 下载控制:可限制链接使用次数或者有效期,避免文件被恶意传播,敏感资料更安心

极致便捷,随时随地

  • 无需注册:凭码取件
  • 清爽体验:界面简洁

部署简单

要求

以下任选一个就行,我推荐使用腾讯云锐驰 200M,存储使用赠送的对象存储 😄

  • 有公网 IP 的服务器
  • 内网穿透走 cloudflare tunnels

PS: FileCodeBox 也支持对象存储,这里我就不推荐 MinIO 了直接使用本地存储就行,因为这个分享服务我定位是短期临时分享或者按次永久分享。

部署

  • docker-compose.yaml
version: "3"
services:
  filecodebox:
    image: lanol/filecodebox:latest
    # image: ccr.ccs.tencentyun.com/k7scn/filecodebox
    container_name: filecodebox
    volumes:
      - /data/filecodebox:/app/data
    ports:
      - "12345:12345"
    restart: always
  • caddy
kd.012321.best {
        import LOG "/var/log/caddy/kd.log"
        reverse_proxy 10.25.123.1:12345
}

分享文件

  • 打开网页,点击"分享文件"
  • 选择或拖拽文件
  • 设置过期时间和次数
  • 获取提取码

获取文件

  • 打开网页,输入提取码
  • 点击获取
  • 下载文件或查看文本

是不是用 FileCodeBox 分享文件,简单到不可思议。整个过程无需复杂操作,接收方也不需要注册,真正“即传即得”!

管理面板

访问 /#/admin
输入管理员密码 FileCodeBox2023, 登录后请立即修改

管理文件和配置

如果需要发送私密信息,建议自建请勿使用第三方服务,避免不必要的问题

最后想说

在数据安全越来越重要的今天,FileCodeBox 不仅是一款工具,更是一种自由、安全的文件分享方式。它让分享变得高效、可控,完美适配各种场景。如果你也厌倦了网盘的限速和收费,或为敏感文件的隐私问题担忧,FileCodeBox 绝对值得一试!
快部署你的 FileCodeBox,体验前所未有的文件分享自由吧!


三频HIFI+独立声腔,这耳机有点“声”猛!狼蛛这次真支棱起来了!

这几年磁轴键盘炒得太火了,好像玩FPS不入手一把磁轴就不好意思说自己是“高端玩家”。但其实磁轴更适合特定类型的游戏,而且大多数磁轴键盘都是小配列、有线设计,未必适合所有人。一味追求磁轴并不一定值得,花了几千块升级键盘鼠标,结果进游戏连敌人的脚步声都听不清,那就本末倒置了。很多时候,与其追求价格高的装备,不如选一些更实用、性价比高的设备来得实在。

今天熊猫要给大家介绍的是狼蛛前不久新推出的G7 Pro头戴式电竞耳机。虽然它是一款定位百元价位的产品,但狼蛛却给它配上了不少“职业级”的配置,三模连接设计也大大提升了它的适用场景。我自己也已经入手使用了一段时间了。作为首发价只要169元的电竞耳机,实际体验到底怎么样?下面我就来详细聊聊。
外包装

外包装采用了非常简洁的设计,纯黑色底配上狼蛛的 Logo,下方还印有一些产品的主要卖点。配件方面也很齐全,包括一根可拆卸麦克风、USB-A 到 Type-C 数据线、3.5mm 转 Type-C 音频线,还有一个 USB 无线接收器,基本能满足多平台使用需求。
配件

因为打算长期当作日常主力耳机来用,所以我还特意入手了一套耳机支架的搭配组合。这套支架在购买时会根据耳机颜色同步配色,确保风格统一。G7 Pro 一共提供了三种配色:幻影黑、银翼白和绯月粉,我最终选择了比较清爽的银翼白。
耳机支架

支架如果单独买要69元,但如果选择套装搭配耳机一起入手,总价只要199元,性价比一下子就上来了。支架不仅自带RGB氛围灯,提升桌面颜值,背面还配备了两个 USB 2.0 接口,用来插无线接收器之类的外设也很方便,实用性不错。
USB扩展

回到耳机本身来说,从外观来看它更像是那种适合日常通勤使用的类型,整体风格偏向简约实用。外壳采用了磨砂工艺处理,手感细腻不沾指纹;耳罩部分则是悬浮式设计,整体视觉和触感都挺不错,日常使用也很合适。
耳机外观

狼蛛官方把这种悬浮式耳罩结构称为「360°OmniFit 动态贴合耳罩设计」,听起来确实挺高大上的,不过其实很好理解。由于它的结构设计比较特别,佩戴时耳罩可以随着耳朵的形状自动调整贴合角度。就算你在游戏中频繁转头或低头,耳机也不会轻易移位。相比那种夹头感明显的耳机,舒适度明显提升了不少。
悬浮式头罩

材质方面,G7 Pro 使用了高透气纤维面料搭配定制声学棉的组合,听起来就很适合夏天使用。最近气温一上来,我也特意测试了一下——在室温约 30°C 的环境下,即使连续佩戴较长时间,耳朵也没有出现明显的闷热感,透气性表现还是挺不错的。
材质

头梁支持8档伸缩调节,对于各种头型都能很好的适配,头梁回弹性不错,挤压能快速回弹,接触也能一定程度缓解长时间佩戴带来的头部疲劳。
头梁

G7 Pro 的所有控制按键都集中在左侧耳罩上,布局很集中也很直观。除了集成多功能的电源按键以及音量调节波轮之外,还特别设计了一个麦克风一键静音功能。在游戏或者语音通话中,临时需要闭麦时,这个按键真的非常方便,操作起来几乎不需要看就能完成。
控制区

作为一款电竞游戏耳机,“听声辨位”能力可以说是它的核心竞争力之一。G7 Pro 搭载了钕铁硼强磁单元配合独立声腔分层技术,在游戏中无论是脚步声、枪声还是技能释放时的音效,都能做到精准还原,层次分明。实际体验下来,声音的远近感也很清晰,能帮助玩家更准确地判断敌人的方位,在战场上抢占先机。
听声辨位

G7 Pro 的音频解析能力表现不错,低、中、高三频之间的分离度很高,在面对复杂声源时也能保持清晰不混杂,不会出现“糊成一团”的情况。这里特别提醒一下:驱动一定要装!狼蛛为 G7 Pro 的驱动做了不少功能设计,比如 7.1 环绕音效、智能音量调节、人声增强、动态低频模式等等,开启后能明显提升听感体验,尤其在游戏场景中效果更明显。
驱动界面

除了打游戏,我也用 G7 Pro 来听了听音乐,整体表现还是挺不错的。在默认设置下,它的中低频表现尤为突出,人声清晰通透,低频也有明显的量感和下潜感。其实这也跟它是电竞耳机的定位有关——像枪声、技能音效这些主要集中在低频区,所以整体调音也会往这方面侧重。如果你平时喜欢听流行或者电子类音乐,这款耳机也完全能满足日常听歌需求。
听音表现

最后来说说麦克风部分,G7 Pro 配备的是可拆卸式设计,用完可以随时取下,日常听歌时也更干净利落。在配套驱动中还支持音效调节和降噪功能设置。实测开启降噪模式后,确实能明显削弱键盘敲击等环境噪音,不管是语音聊天还是游戏开麦,人声都清晰透亮,实用性很强。
麦克风

续航方面,G7 Pro 搭载了一块 1000mAh 的电池,在使用 2.4G 无线模式、关闭 RGB 灯效的情况下,官方标称续航可达约 65 小时。实际日常使用下来,充一次电撑过一周基本没问题,通勤、办公、游戏都能安心使用,不用频繁插线补电,体验非常省心。
游戏场景

最后来做个总结:G7 Pro 作为一款首发价仅 169 元的电竞耳机,整体表现可以说是非常亮眼。如果你预算稍微多一点,我更推荐直接入手 199 元的套装版本。耳机支架不仅能提供整洁的收纳空间,还自带 RGB 氛围灯提升桌面颜值,背面还有 USB 接口方便外设连接,实用性非常强。对于有电竞需求但预算有限的用户来说,百元价位能有这样的综合体验,真的挺难得的。想换新耳机的朋友,这款完全可以放心冲!
场景图

以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
尾图

使用 Python 脚本实现图片相似度匹配

随着相机像素越来越大,图片体积也变大了。在图片处理中,较大的文件体积会影响性能,因此杜老师会先生成缩略图,筛选完成后再通过 Python 脚本实现图片相似度匹配。这里是一个简单的示例,供需要的小伙伴们参考。

脚本说明

以下是个基于 Python 的脚本,使用 PIL 以及 imagehash 库来实现。

遍历目录 A 中所有图片。

在目录 B 中查找相似的图片「通过感知哈希算法判断」

如找到匹配项,则将图片复制到目录 C,并以目录 A 图片的名字命名。

安装依赖

1
pip install pillow imagehash

注意:在运行脚本前,需安装所需的 Python 库。

脚本示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import shutil
from PIL import Image
import imagehash

# 定义目录路径
dir_a = 'path/to/dirA'
dir_b = 'path/to/dirB'
dir_c = 'path/to/dirC'

# 设置相似度阈值(越小越严格)
threshold = 5

# 获取图片的感知哈希值
def get_image_hash(filepath):
try:
return imagehash.phash(Image.open(filepath))
except Exception as e:
print(f"无法处理文件 {filepath}: {e}")
return None

# 判断两个哈希值是否相似
def is_similar(hash1, hash2):
return hash1 - hash2 <= threshold

# 确保目标目录存在
os.makedirs(dir_c, exist_ok=True)

# 遍历目录 A
for filename in os.listdir(dir_a):
file_a_path = os.path.join(dir_a, filename)

# 检查是否为图片
if not filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
continue

hash_a = get_image_hash(file_a_path)
if hash_a is None:
continue

# 遍历目录 B 寻找相似图片
for b_filename in os.listdir(dir_b):
file_b_path = os.path.join(dir_b, b_filename)

# 检查是否为图片
if not b_filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
continue

hash_b = get_image_hash(file_b_path)
if hash_b is None:
continue

if is_similar(hash_a, hash_b):
# 构建目标路径
file_c_path = os.path.join(dir_c, filename)
# 复制并重命名文件
shutil.copy(file_b_path, file_c_path)
print(f"已找到匹配: {filename} -> {b_filename}, 已复制到 {file_c_path}")

注意:将 dir_a, dir_bdir_c 替换为实际路径;threshold 控制图像相似度阈值,可以根据需要调整;支持多种常见格式图片文件;使用 imagehash.phash 进行感知哈希的比较,适合用于识别视觉上接近的图片。

运行效果

1
2
3
4
5
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py
已找到匹配: image105.jpg -> 1745928332994.jpg, 已复制到 c/image105.jpg
已找到匹配: image001.jpg -> 1745736425856.jpg, 已复制到 c/image001.jpg
已找到匹配: image017.jpg -> 1745736425221.jpg, 已复制到 c/image017.jpg
已找到匹配: image085.jpg -> 1745928334851.jpg, 已复制到 c/image085.jpg

注意:脚本运行过程可能会有错误提示,需要根据提示进行修复。

日本旅游攻略:赴日前的准备与注意事项

写在前面

本文是《日本全境漫游计划》的试读部分,无需担心,你可以免费阅读本章节的全部内容。

《日本全境漫游计划》是一套以“地域 × 专题”方式深度解读日本的旅行指南,想写给第一次来日本的朋友,也写给那些已经走过很多次、仍想继续发掘惊喜的你。

《日本全境漫游计划》是由我执笔,已经上线少数派平台的共创项目,目前为试读阶段+反馈征集阶段,因此十分欢迎你在本文底部留下你的阅读反馈。

赴日前的准备与注意事项|行程开始前,你需要知道这些事

说走就走的旅行听起来浪漫,但在计划前往日本的旅途中,准备得越充分,旅途中的每一刻就越安心而从容。

无论你是第一次踏上这片土地还是重游故地,每一趟旅行都是一次全新的探索。比起单纯打包行李、订好机票,真正的出发,往往从细致入微的准备开始——办签证、查天气、装好交通卡App、学习几句实用日语…… 这些琐碎却关键的小事,正是让你自在畅游日本的秘诀。

本章节将带你一一梳理赴日前的实用准备,从最新的签证政策提示、交通攻略到日常交流小贴士,希望能帮你在启程前扫清所有「出发前的不安」。

第一部分:签证政策 & 入境须知

注:本节内容更新于 2025 年 4 月,请注意签证政策可能随时调整。所有签证申请资料及流程,请以日本驻华使领馆官方网站或其指定的签证代办机构为准。

出发前,请先确认你的签证类别

对于中国大陆游客而言,前往日本旅行需要事先办理签证。近年来,日本政府逐步推动电子化签证系统(JAPAN eVISA),为短期访问提供了更多便利。尤其是从 2024 年起,中国部分城市的居民可以通过线上申请「一次入境电子签证」,并新开设了 10 年多次往返签证。

由于笔者并非相关专业人士,再加上中国各地办理政策不同(如上海领区的日本签证办理条件相对宽松)、政策时效性变化大等原因,恕难在此列出详尽的签证要求。

但不论申请哪一类签证,都务必通过日本大使馆指定的正规旅行社进行办理。这些旅行社不仅承担签证资料的提交与审核,还必须负责签证行程的管理。如果你在电商平台上选择签证代办服务,请务必确认其是否为「挂靠」代办或中间商。制作虚假材料、选择非官方指定的旅行社办理有可能导致资料被退回,甚至签证被拒。

日本驻华大使馆公布的签证指定代理机构列表

观光签证常见申请资料 (以「一次短期个人观光」为例)

以下是 2024 年后日本使馆要求提交的主要材料 (适用于「一次短期观光签证」):

  • 护照原件
  • 贴好照片的签证申请表
  • 个人信息处理同意书
  • 能证明居住地的材料(如身份证、户口簿等)
  • 经济能力证明文件(如银行流水、在职收入)
  • 户口簿或亲属关系公证书(如为家庭成员同行)
  • 其它补充材料(如工作证明、邀请函等,根据具体情况由旅行社判断)

由于该部分可能存在时效性变化,且由于各领区具体规定也不相同 (无法跨领区申请),因此还请在官方页面或者指定的代理机构处确认:

日本驻华大使馆公布的办理签证所需要的常规材料

入境时需要注意什么?

虽然日本的 IT 系统很「拉胯」,但日本入境通关程序近年来确实变得更为高效。建议出发前注册 Visit Japan Web 系统,提前录入你的护照、航班与健康申报信息,抵达后可走快速通道。

此外,请注意以下几点:

  • 禁带物品包括某些药品(处方药需日文处方翻译)、动植物、肉类食品等;
  • 入境携带超过 100 万日元(或等值外币)需申报;
  • 如果没有注册 VJW 账户,请在飞机上拿取入境卡进行填写;如果忘记也没关系,在入境审查区同样可以填写。
  • 可以为了保险起见准备行程单,但日本作为旅游大国,海关 99.9% 的概率不会询问游客行程问题。
  • 如果你打算多次前往日本,或计划自驾、深度游,建议长期签证。虽然申请材料较多,但能省去未来反复申请的麻烦。

第二部分:行前准备指南

不只是订机票和办护照,那些让旅途更从容的小准备,也值得提前安排。

日本作为对旅游超级友好的国家,无需特别准备什么东西;你能想到的东西,基本都能在落地日本后买到,因此无需特别担心。但如果你的目的地是东京、大阪、福冈、札幌等大城市以外的地方,我还是建议你尽量提前准备好部分所需物品,因为在乡下交通不便,且能够购物的地方较少。

手机上网、支付方式:

网络连接方式

  • 实体SIM卡:这是最推荐的方式。个人比较推荐办理中国移动旗下的 CMLink,优点是全程中文办理,并且提供的是真实的日本号码,在日本可以拨打电话、接收短信以及流量上网;缺点是信号在城市内并不好,价格相对于电商平台较贵。如果只有流量需求的话,建议直接在国内电商平台购买、亦或者选择在日本的便利店内购买专供游客使用的流量卡,在机场、新宿等游客聚集的便利店均有出售。
  • 随身 Wi-Fi:适合多人同行,一般在机场租借较方便,但需注意电池容量与归还方式。
  • eSIM推荐:如果你手机支持eSIM功能,可以直接在线购买日本的 eSIM 卡,省时方便。

支付工具建议

image.png

在日本,各大支付运营商较多,往往生活在日本的人也不能拥有上图中的所有支付手段。但对于游客来说,仅需掌握以下几种即可:

  • 推荐使用 Suica 或 PASMO 电子版(可添加至 Apple Wallet 或 Google Pay):乘车必备,便利店、超市、自动贩卖机、部分餐厅也能使用。如果你使用 iPhone,可以直接提前开卡进行注册,支持国内的银联卡片直接充值。
  • 信用卡:主流的卡组织 Visa、MasterCard 以及美国运通、JCB 基本都可以,但极少数店铺会指定刷卡结算卡组织(比如秋叶原的某些女仆咖啡店?)。所以为了保险起见,最好准备两张不同卡组织的卡片。
  • 移动支付:日本全境范围内,主流便利店(711、罗森、全家等)都支持微信和支付宝付款;大型商场基本全部支持 Apple Pay。
  • 现金准备:在日本现金为王。虽然在东京、大阪这种城市基本可以实现「无纸化」,但还是有相当多的店铺仅支持现金付款,这在乡下(指东京大阪以外的任何地方)尤为常见。特别是如果你打算前往某个岛屿的时候,由于并不是所有 ATM 都支持银联取款,因此有必要常备现金出门。 此外,你还可以在微信支付、支付宝支付的时候提前领取汇率券以及日本当地的优惠券。在落地日本后,支付宝会自动切换成日本地区,在首页就有相关的优惠活动。

自动贩卖机的支付

日本作为自动贩卖机大国,无论是在城区亦或者偏僻的山村,你总能看到自动贩卖机的身影。一般来说,你可以直接使用硬币支付购买,这是最为基础、也是最保险的方式。但如果你恰巧没有现金,那么你可以尝试寻找支持移动支付的自动贩卖机。

自动贩卖机根据型号和厂商不同,支持的移动方式各有不同。在游客密集区域,一般支持的方式较多:微信、支付宝、西瓜卡、Apple Pay 等均可以付款。此外,你还可以下载 Coke ON 或者 ジハンピ 应用来进行支付,这两个 App 经常会有新用户活动,可以免费获取饮料。

衣物打包、季节建议

日本的气候四季分明,不同地区的温差也相当明显。不过你完全不用担心衣物的问题,因为日本当地的优衣库、MUJI 完全可以解决你的各种临时需求。因此在衣物方面,根据不同场景,你只需要注意这几点:

  • 如果你的行程都是城市场景:行前查询下目的地天气,随便带几件即可。
  • 如果你的行程中有徒步、露营等户外场景:请带好你的冲锋衣等户外功能性衣物,因为在日本购买户外产品并不便宜(尤其是露营用的小物件);如有临时需求,你也可以到 Montbell 这种平价户外店里购买。
  • 如果你的行程在梅雨季:折叠伞是旅行必备,日本天气变化快,雨具也常用得上。当然你也可以选择在日本便利店或者百元店购买雨伞。
  • 如果你的行程在冬季:北海道、东北等地常有暴雪,需准备防滑的户外鞋、防风保暖的机能外套。

日用品、药品携带

  • 常备药:感冒药、止泻药、过敏药、晕车药;在日本当地可以寻找松本清等药妆店购买。
  • 转换插头:日本统一电压为交流 110 伏。频率主要有两种,日本东部为 50 赫兹,西部(名古屋、京都、大阪等)为 60 赫兹。日本常见的插孔为两孔扁平插头,与国内基本通用,但请提前确认携带的设备是否为宽电压。一般来说,手机、MacBook 电脑等设备是可以在日本无障碍使用的,无需特别准备转换插头。
  • 收纳袋 & 洗衣袋:适合分装衣物、脏衣物;在胶囊旅馆或温泉旅馆较为有用。

无人机航拍的申报 特别需要指出的是,如果携带无人机航拍,请提前在日本国土交通省 DIPS 申报后导入飞行器;且在飞行时提前 2-3 月申请相关空域许可,二者缺一不可。个人建议是申报后如果没有空域许可,也不要在各种城市内飞行,风险过高,且大疆自带的禁飞区在日本显示并不准确。

具体规则和申报请参考:Drone/UAS Information Platform System 2.0

空域许可申请书以及DIPS网站的使用说明:DIPS User Guide / Manual

具体禁飞区可以下载 Drone Maps 查看。

第三部分:日本出行公共交通 & App 推荐

从成田机场到新宿车站、从地方电车到新干线,搞懂交通工具,是打开日本旅行地图的第一步。

image.png

很多初次来日本的旅人会对复杂的交通系统感到头痛,笔者当年初来乍到在新宿站转了一个小时也没找到山手线的入口在哪儿。

JR、电铁、地铁、巴士各自为政,车站如迷宫般庞大(比如新宿车站有 200 多个出口),票价计算也常让人一头雾水。但一旦摸清门道,你会发现,日本的公共交通系统其实高效、可靠;下载几个 App、准备一张交通卡,哪怕语言不通,也能畅行无阻。

如何高效分辨车站标识

日本的所有车站基本都遵守这样的标识规则,我们以东京地铁为例说明:

车站的标识由英文字母、罗马数字和带有颜色的外圈所构成。

通过查看标识可以方便地找到目的车站。车站标识规格统一,被使用在运行路线图、站台的设施等地方。

车站标识的使用

  • 可以通过车站标识的英文字母和罗马数字方便地找到目的车站。
  • 可以简单地计算出到换乘车站或目的车站的车站数。
  • 可以一目了然地确认是否乘坐了开往目标车站方向的列车。

车站标识的所在位置

image.png

在运行路线图、车站看板等处与车站名称一同表示(本部分摘自东京地铁中文官网)。

交通卡、周游券:游客出行的好帮手

Suica / PASMO / ICOCA / TOICA …

这些名字看起来像咒语,其实都是各地的交通 IC 卡。虽然由不同地区发行,但如今多数已全国通用,无论你在东京刷 Suica,还是在关西刷 ICOCA,大多数地铁、电车、巴士、便利店、自动贩卖机都能使用。

各种 PASS 周游券

为了促进旅游,日本想尽了诸多方式给予游客优惠政策,各种 PASS 周游券就是其中之一。这些 PASS 周游券用区域和天数划分,在规定时间内指定的公共交通可以无限次乘坐,好好利用的话就能省下不少钱。下面为大家介绍几个比较热门的PASS周游券:

JR 东日本 · 东北铁路周游券
image.png

推荐前往青森、秋田、仙台等东北地区的朋友购买。适用地区很广泛,从覆盖了关东地区的一部分、以及东北地区,但不适用于东海道新干线。目前分为 5 天的 PASS 和新增设的 10 天的 PASS,价格分别是 3 万日元和 4 万 8 千日元。

具体的使用范围、取票方式等可以参考中文网页

JR 北海道全境周游券

有效期间内可自由乘坐 JR 北海道线(不含北海道新干线)所有的列车,有效期分别是 5、7、10 天,价格分别为:2 万 3 千日元、2 万 9 千日元、3 万 7 千日元。周游券可以预购,会比正常票价便宜 1000日元。

需要说明的是,JR 北海道除去全境周游之外,还可以单独购买区域内的周游券,价格也便宜了不少,这对只想游玩固定区域的游客非常友好。

具体的使用范围、取票方式等可以参考中文网页

JR 东京广域周游券
image.png

有效期三天,价格为 1 万 5 千日元的东京圈周游券。非常适合想去轻井泽、宇都宫、富士山、伊豆等地的朋友。

具体的使用范围、取票方式等可以参考中文网页


由于日本针对游客的周游券众多,限于篇幅无法在本文全部列举。但几乎日本全境都有其对应的周游券,在旅途开始可以根据自己的行程规划和活动区域,选择最适合的周游券。

例如,如果主要在九州地区旅行,可以选择 JR 九州铁路周游券(全九州、北九州、南九州);如果计划游览大阪和京都,则有关西铁路周游券;四国等地也有各自的地区专用周游券;此外,部分热门景区还提供一日周游券(比如川越)。这些周游券都有其对应说明的中文网站,因此查询起来也很方便快捷。

购买方式也非常灵活:可以在出发前通过 JR 官方网站、海外代理或旅行社购买兑换券,抵达日本后在主要车站兑换成实体周游券;部分地区券还可直接在日本国内的指定窗口或自助售票机凭护照购买。使用时,只需在有效期内持票通过自动检票机或人工检票口即可进出车站,非常便利。

建议在出发前详细查阅各类周游券的适用范围、有效天数、价格及使用规则,合理搭配不同地区券与全国券,既能节省交通费用,又能让行程更加高效顺畅。

新干线的预约和使用

如果你不打算购买上述周游券,又有乘坐新干线的需求,那么你需要了解一个事实:日本的新干线由于归属不同的运营公司,因此在线上的购票是完全分开的,并不像国内只需在一个 App 上即可完成全国购票。

主要新干线运营公司与对应的预约方式如下:

JR 东日本(东北·北海道、上越、北陆、山形、秋田)

  • App 推荐:えきねっと(ekinet)
  • 支持线上预约、指定座席、车票变更
  • 可用信用卡付款,有英文界面

JR东海(东海道、山阳和九州)

  • App 推荐:smartEX APP
  • 可预约东海道新干线(即关西到关东,起于东京站、迄于新大阪站,串连东京、名古屋、大阪)
  • 外国游客亦可注册,但需到英文官网,支持海外信用卡绑定 此外还有各地的区域专用 App 和预约方式,比如 JR 九州也有自己的网站和 App,但只能购买九州范围内的新干线…… 总之说起来十分复杂。

上述这些网络购票方式,即使在日本生活多年,如果不经常出门的话也往往搞不清楚。因此,对于游客最简单便捷的方式就是直接去车站窗口购票,或者在车站自助售票机解决。

包车的注意事项

在北海道等出行不便的地方,对于预算充足的朋友来说,包车可能是前往景点的高效选择。

在这里笔者想请大家注意的是,无论你通过旅游平台还是私人途径包车,都需要认准「绿牌」车辆。因为只有「绿牌」车辆是日本营运车辆的标志,选择「绿牌」车辆,意味着你选择的是合法注册并接受监管的运输公司;而使用非「绿牌」车辆提供的所谓「包车」服务,往往存在很大问题,比如非法运营、安全隐患和保险不足等重大风险。

此外,你还可以查询旅行地当地的出租车包车政策,比如鸟取县就在 2024 年推出了针对游客的「周游计程车」:只要 4000 日元即可 3 小时包车畅游鸟取砂丘、白兔神社、若樱铁道、柯南机场等知名景点,共 23 条路线任选。

换乘导航 App 推荐:地铁巴士再多也不怕迷路

  • 乘換案内 (支持中文) 日本人也在用的老牌 App App 内有广告,内置付费项目
  • Google Maps (支持中文) 简单好用,不付费、无广告,涵盖地铁、电车、巴士等所有路线 适合快速查询,但票价与站名偶尔会有微小出入,建议交叉确认
  • NAVITIME (日文,面向日本人) / Japan Travel (中文,面向游客) 中文精准度高,支持站名模糊输入 App 内有广告,内置付费项目

补充说明:步行导航建议使用 Google Maps 或者iPhone 自带的地图导航即可。

第四部分:日本自驾出行 & App 推荐

虽然日本以高效的公共交通闻名,但想深入探索乡间、海岸线、森林秘境或是那些「电车到不了的景点」,租车自驾会是一种更自由、也更独特的旅行方式。尤其在北海道、冲绳、九州等地,自驾几乎已成为「体验本地生活」的关键手段。

当然,日本的交通规则、安全意识、导航系统也与国内略有不同。在这一部分,笔者将帮你梳理清楚从驾照准备、租车流程,到必备导航 App 与驾驶注意事项,带你顺利上路。

国际驾照

如果你是中国驾照持有者,不能直接在日本开车。你需要持有「日内瓦道路交通公约」认可的国际 ID 护照才可以合法租车。你可以考虑在日本、韩国亦或是新加坡等地考取该驾照,但具体操作不在本文覆盖的范畴内,请自行查询。

租车平台

日本租车行业十分规范、成熟,且本土消费者也习惯在日本租车旅行。在日本街头,经常能看到 わ 牌车辆出行,这些 わ 牌车辆就是租车的专用牌照;如果你租的车不是 わ 牌(冲绳等地也有 れ 牌),那么意味着该租车行为大概率不合法。

在日本租车,请尽量使用大牌租车行提供的车辆,一来流程规范、车辆整备好;二来也避免产生法律风险。以下是几个在日本人尽皆知的租车公司:

  • Times Car:网点遍布全国、共享汽车支持手机解锁、价格相对便宜,代表车型是马自达。
  • Toyota Rent a Car:丰田旗下的租车公司,代表车型是丰田旗下的各种车,包括雷克萨斯。
  • Nippon Rent-A-Car:日本本土老牌租车公司,代表车型是斯巴鲁。

大多数租车平台均支持以下服务:

  • 支持选配雪地胎、选择四驱车
  • 可以租赁 ETC卡(自动高速收费)
  • 提供多种保险选项,建议购买附带「NOC」的全险套餐

驾车导航推荐 App

对于游客来说,由于车辆内置导航大多为日语,因此最好选择支持 CarPlay 的车型,这样可以连接手机使用导航,方便快捷。如果车辆不支持 CarPlay,也可以尝试使用以下几款软件进行手机导航:

  • Google Maps:支持中文,基本准确,但对东京等大城市的复杂线路导航较差,但在乡下基本准确;
  • Apple Maps:支持中文,基本准确,但建议将内置语言显示为日语,播报语音为中文;
  • Yahoo!カーナビ(Yahoo! Car Navi):日本本地用户的选择,实时路况精准,全日文。
  • COCCHi:付费导航但可免费体验两周,支持推荐走行车道以及提前播报第几个红绿灯后转向,支持推荐自身车型宽度的车道,可播报停车场是否满车、甚至支持查询每栋楼的住户姓氏(主要给配送人员使用)。仅支持日语播报,但显示简单易懂。

日本开车须知:和国内有什么不同?

  • 靠左行驶:方向盘在右侧,雨刷器和转向灯和国内也是相反的,转弯需特别注意不要逆向行驶。
  • 红灯禁止转向:红灯状态下有绿色方向箭头的情况除外。
  • 行人优先:要绝对礼让行人,这是日本驾驶的重要规则之一。
  • 路权车优先:日本驾驶非常讲究路权,右转需让左转,左转需让直行,路权优先的一方默认优先通行。
  • 停车规范:大部分城市禁止路边停车,请使用「计时停车场」或「投币停车场」。
  • 山路较多:无论日本高速还是国道,都有很多弯道需要特别注意;日本窄路非常多,也需多加注意。
  • 注意停止标识:日本道路狭窄,很多路口不设置信号灯,但会在路口设置红色「とまれ」标识,代表一定要停车让行。这是非常重要的一点,每年都有游客自驾因为「とまれ」没停而发生严重事故。
  • 双闪感谢:在交替通行或者车辆谦让过程中,往往被谦让的车辆会打双闪表示感谢。但根据地域驾驶习惯不同,并不是所有车辆都会双闪感谢。
  • 铁道口停车确认:在通过无人看守的铁路道口或标志的道口时必须执行停车确认四周的操作。
  • 默认超速:通常来说,日本车辆不会按照道路标识的时速行驶,而是会大于标识速度的 10-20 左右的时速行驶,甚至更快。作为游客来说,请尽量不要超速并在慢车道行驶
  • 自助加油:日本有很多加油站采取自助加油的方式,在加油的时候一定要确认自己加油的种类。

当你开车穿越雾中的阿苏火山,沿着能登半岛海岸线缓缓行驶,或是在冲绳的滨海公路上看日落——这些都是坐电车无法抵达的风景。只要准备妥当、遵守规则,自驾将成为你深入日本土地、发现小众惊喜的利器。

第五部分:日本食住餐厅酒店预定 & App 推荐

餐厅预订 App 推荐:吃得好,玩得巧

日本是个预约为先的国家,很多非连锁的餐厅实施预约制,但也恰恰是这些小店的口味更为独特,因此要想品尝到这些美食,事前预约非常重要。

  • 食べログ(Tabelog) 日本最权威的美食评分平台,类似大众点评,日本本地用户数多,评分真实。可按评分、距离、营业时间等筛选,附有菜单照片与预约链接。

近年开始提供中文服务,甚至推出了微信小程序,还可以用中文预约餐厅。

  • Google Maps 综合性平台,可以列出店铺的可供预约的不同平台。直接列出店铺官网,可以直接指向官网预约(有些店铺只能自家官网预约)。

  • ぐるなび / Hot Pepper 更注重优惠与团体用餐预约,可获取折扣券或线上订座。Hot Pepper Beauty 可用来预约日本的美容院、理发店

日本住宿预订解析:哪种适合你?

一趟惬意的旅程,从一晚舒适的睡眠开始。日本的住宿选择种类繁多,从都市商务酒店到乡间温泉旅馆,从别致民宿到胶囊旅馆,应有尽有。由于篇幅限制,在这里仅做酒店的简单介绍。

  • 快捷商务酒店 城市中最常见的住宿类型,价格合理、交通便利,适合重视性价比的游客。常见的品牌有:东横 INN、Super Hotel、Dormy Inn、Route Inn、Daiwa Roynet Hotel 等。特点是房间一般较小但五脏俱全,普遍配有浴缸、加湿器、睡衣。

从个人角度来说,我更推荐 Dormy Inn,主打性价比的同时,酒店还附带有温泉以及免费的夜宵拉面,这对于预算不多的旅行者来说非常适合。

  • 温泉旅馆 想体验和式榻榻米、穿浴衣泡汤?那就别错过这一类。特点是一般价格偏高,部分风景优美的同时位置偏僻,需要提前查看是否提供免费接驳车。多含一泊二食,服务讲究,适合放慢节奏的旅程。

这种酒店相对知名的连锁品牌有大江戸温泉物語、亀の井ホテル等,价格也相对合理,服务也较为全面。剩下的基本都是独立的温泉酒店,价格差距较大。如果预算有限的话而又想体验温泉的话,可以寻找一些可以「日归」的温泉酒店,这样省钱的同时也体验了温泉项目。

  • 民宿 / Airbnb / Guesthouse 与当地生活更贴近,适合家庭出行或结伴旅行。特点是空间大、可自炊,有些可体验「町家」(有百年历史的日式老屋),需注意和日本房东的寒暄、以及是否是无接触式入住(有些是与房东交接)。

  • 高端酒店 以星野集团旗下的虹夕诺雅、界为代表的日本本土高端住宿品牌,以及如安缦、丽思卡尔顿、柏悦等国际顶级酒店,共同构成了日本「奢华旅宿」的天花板。

  • 以星野集团为例,强调「在地文化融合」,每一家酒店都融入当地风景与风俗:

  • 虹夕诺雅京都,隐于鸭川边的山林间,需乘小船才能抵达;

  • 虹夕诺雅富士,是以「森林露营」为概念设计的野奢酒店;

  • 界系列则更偏「高端温泉旅馆」,适合想沉浸式体验日本风情的旅行者。

国际高端品牌则多集中于大城市,如东京、大阪、京都等地,主打城市景观与高端服务。比如东京的安缦酒店位于大手町塔之巅,是不少商务旅客与名人指定入住的酒店,非常适合想兼顾高端住宿与文化体验的旅人。

住宿预订平台推荐

  • Agoda / Booking / Trip:界面中文友好、支持支付宝 / 微信支付、取消政策灵活。
  • じゃらん / Rakuten Travel:日本本地用户最常用的预订平台,有时会有独家优惠,但对于游客来说预定困难。
  • Airbnb:适合寻找特色住所,但需注意查看是否「正规登记民宿」(有备案编号)。

无论在哪家平台预定来说,比价是最重要的环节。笔者一般会在谷歌地图中搜索想预定的酒店,谷歌地图会自动将该酒店不同平台的价格显示出来,方便对比。

预订时请特别注意以下几点:

  • 查清「是否含税」与「是否含早餐」:日本不少住宿会在总价之外加上「住宿税」或者「入汤税」(会在入住时缴纳),部分城市还会收取额外「市税」。
  • 单人 / 双人订房的价格区别:在日本,同一间房型,一人入住和两人入住的价格是不同的,请务必注意。
  • 确认退改政策:特别是在樱花季、红叶季或大型活动期间,很多住宿「一经预订不可退款」,请务必看清条款。
  • 优先选择「车站步行 10 分钟内」:特别是在携带大件行李时,住宿地点离车站远会大大增加负担。有些酒店会提供免费的接送服务,请提前和酒店确认。
  • 注意分辨环保选项:部分日本酒店提供「环保计划」选项,价格会比其它房屋选项低。「环保计划」是不提供房屋清扫服务的(或者降低房屋清扫频率),请提前确认。
  • 注意 Check-in / out 时间与门禁制度:日本酒店一般不提供提前入住的服务,因此最好在酒店规定的 Check-in 时间后入住;请在 Check-out 时间之前退房,否则有可能收取额外的费用,与国内不同,日本多数酒店的退房时间为上午 10:00。此外,有些传统旅馆或民宿晚上 10 点后可能不接受入住(笔者就经历过抵达后前台已经下班了),请提前联系沟通。

第六部分:日本天气、节庆日历

四季分明的日本,每一段时间都藏着专属的风景与仪式感。选对时间,便选对了旅行的节奏。

在日本旅行,「什么时候来」往往比「去哪里」更重要。春看樱、夏赏祭、秋观枫、冬滑雪,几乎每一个月都有理由让人动身。而不同季节的气候、穿搭需求、活动安排,也各有讲究。本章将从一年四季的气候特点出发,为你呈现一份结合天气、节庆、穿衣建议的旅行月历。

春季:3 月下旬至 4 月中旬

关键词:樱花、初春、户外散策 看点:东京、京都、大阪、奈良等地的樱花陆续满开,公园、河岸、古寺都是热门赏樱地。 气候:白天温暖、早晚微凉,建议穿风衣 + 长袖内搭。 小贴士:避开日本「学校春假」(3月下旬 - 4月初),更容易拍到人少的樱景;热门城市需提前至少 1 个月订房

秋季:10 月下旬至 11 月中旬

关键词:红叶、温泉、文化季 看点:京都的东福寺、岚山;长野的上高地、户隐;东京近郊的高尾山、箱根枫叶。 气候:干燥清爽,是全年气温最舒适的旅行季节 小贴士:秋季适合「赏枫 + 泡汤」组合,别忘了携带风衣和薄围巾以防早晚微寒。

冬季:12 月中旬至 2 月

关键词:雪景、滑雪、灯光祭 看点:北海道、东北、新潟、白马等地雪景壮观,适合滑雪或泡雪中温泉;札幌、神户等城市点灯活动温暖人心。 气候:北国极寒,东京以南则较为温和但干冷。 小贴士:雪地行走注意鞋底防滑;滑雪场附近住宿热门,建议节前预订。

特别推荐:夏季祭典、烟火大会(7 月 - 8 月)

关键词:热浪、浴衣、祭典 看点:东京隅田川、长冈、琵琶湖等大型烟火大会,阿波舞、祇园祭、仙台七夕祭气氛热烈。 气候:炎热潮湿,日晒强烈。 小贴士:注意防晒、防蚊、补水;烟火大会现场人多,建议提前踩点或预约席位。

旅行建议 :如何避开人潮?

尽量避开日本「连休」:黄金周(4 - 5月初)、盂兰盆节(8 月中旬)、年末年始(12 月底至 1 月初) 如果你想避开游客人潮,那就尽量选择九州、东北、北海道等地广人稀的地方,往往能遇见安静又温柔的日本 如果你想找到更多、更为详细的活动内容,欢迎访问日本国家旅游局面向中国游客开设的旅游网站。

你可以按照自己的喜好亦或者地域查找日本相关的活动介绍,网站为官方中文,查找起来也非常方便。

从樱花初绽到红叶尽染,从雪中灯光到夏夜烟火,日本的时间是有颜色的。愿你不只是「计划旅行」,而是「选择属于你自己的季节」。

第七部分:日本便利设施、应急对策

一场顺利的旅行,既需要好风景,也需要在突发状况时「有备无患」。

旅行中总有一些突发的小插曲:迷路、轻微感冒、手机没电、护照不见了…… 别急,日本的便利设施非常发达,只要了解基本应对方式,就能把「意外」迅速化解,不让它们影响旅途的好心情。

便利店:比你想象得更万能

日本的便利店不仅是买饭团的地方,更是旅行者的「微型补给站」。

你可以在这里:

  • 缴费 / 取现金(大多数店内有 ATM,支持部分海外银行卡)。
  • 打印 / 复印 / 扫描文件(如护照复印件、行程单打印等)。
  • 寄送快递、买车票、购买演唱会门票。
  • 购买应急用品(创可贴、口罩、常见感冒药、数据线、租借充电宝)。
  • 购买简易便当并热饭、简易用餐、借用厕所等

生病怎么办?在日本看病的简要流程指南

  • 小病建议先去药妆店询问(如松本清等),店员多数受过基础药剂培训。
  • 如果症状较重,建议前往门诊诊所(クリニック)或综合医院(病院)。
  • 无需预约的急诊医院会有「急患」或「休日診療」等字样。
  • 持有护照可就诊,但需全额自费支付医疗费用(建议提前购买含医疗保障的旅行保险)。

语言不通怎么办?

一般来说,作为消费者、观光者,在日本的大都市内几乎不可能遇到语音障碍。大多餐厅都配有中文或者英文菜单,99.9% 的大型商场都配有中文店员,日本人也基本上都可以进行简单的英语交流。但如果你的目的地是村镇,那么的确很有可能遇到交流障碍,你可以尝试以下办法:

  • 日本最不缺的就是中国店员,可直接询问是否有中国店员。
  • 尝试利用手机自带的翻译软件翻译、拍照识图翻译,但笔者更为推荐使用 ChatGPT等 AI 翻译,在针对更为复杂的文本环境如菜单等会更为精准及便于理解。
  • 很多车站、观光设施设有多语言观光窗口(Tourist Information),可提供英语 / 中文协助。
  • 拨打多语种服务热线:050-3816-2787(Japan Visitor Hotline),提供 24 小时、365 天中文服务

地震等自然灾害的基本应对

日本是地震频发国家,旅行中可能遇到小规模地震或台风预警。iPhone 已经接入日本国家地震局系统,如遇地震会自动播报。如果你用的是 Android 手机,你还可以下载各种防災アプリ,安装后也会进行地震播报。

  • 若遇地震,保持冷静、避免使用电梯。
  • 留意手机上的紧急推送(日本政府会以震度 / 避难信息推送)。
  • 听从酒店或地铁站工作人员指示,有需要可前往指定避难所(避難所)。
  • 遇极端气象(如台风),建议提前调整行程,避免山区与海岸线区域。

由于日本的建筑防震等级都做的不错,因此多数情况下不必担心。如果遇到紧急情况,也请冷静地跟随周围的日本人一起行动(日本人从小就会不停地接受防灾教育,因此此时跟随他们行动是最推荐的方式)。

结语

一场旅行真正的开始,从来不只是打开航班 App、刷下那张特价机票…… 真正重要的,是在出发之前,你有没有好好问过自己:我准备好了吗?

办好签证只是第一步。落地后的第一站路线、行李里的雨具、常用药品、备用证件复印件…… 这些看似琐碎的事,也许才是决定旅行是否顺利的关键变量。而当你真的站在机场出发口、踏上陌生城市的电车、推开一家深夜营业的便利店时,你会感谢此刻冷静的自己——因为准备得越充分,旅途中的每一步就越自由。

旅行无法被完全预测,但可以被好好预备。希望这一章,能为你即将开启的日本之旅,打下一个坚定的起点。

关于本栏目

未标题-2.jpg

五年前,我第一次独自走进日本。我喜欢一边旅行一边观察,喜欢泡地方温泉、拍地方电车、逛人不多的商店街。每一次次踏上新的土地,我开始用文字记录下这些旅程的片段,在少数派上慢慢构筑起《日本浮生录》系列。那是一部不断更新的个人游记,也是一种试图捕捉“日本日常之美”的方式。

写着写着,我渐渐意识到,光是游记式的分享还不够。而做这本《日本全境漫游指南》,是我一直以来的念头。我希望,这本指南不再拘泥于游记的形式,而是更加全面地、系统地介绍日本。它是一次从“浮生”走向“实用”的延伸,不同于一般“打卡式”路线推荐亦或者是“碎片化”的旅游攻略,这本栏目更像是一位熟门熟路的旅伴,从点滴开始,一边为你指路,一边轻声说:“这个地方,别急着走。”我希望它不止是一本“看完一次就搁置”的攻略,而是一本你每次出发前都会想翻一翻的小手册。

这本指南,写给第一次来日本、却不想走马观花的你;也写给那些去了很多次,却还想继续深入、继续发现的旅人。

writer.jpg
《日本全境漫游计划》希望做一份常旅之人也愿收藏的攻略书,共创页面:https://sspai.com/create/tour-guide-for-japan

Support on Patreon | 爱发电上赞助

四月读书摘要|整个生命只是当下这一刻的叠加

《金刚经》的一句话是这样说的:「应无所住,而生其心」。大概意思就是说:不要沉迷于痛苦和抓住痛苦。痛苦来了,就让它发生,然后让它流走。你需要成为生命的管道,而不是容器。你必须懂得如何将自己摆在第一顺位,学会爱自己。

你要允许自己犯错误,接受自己不好的一面,只活在当下,只享受当下,只体验当下。根本没有过去也没有未来,整个生命只是当下这一刻的叠加。遇桥就架桥,遇水就蹚水,车到山前必有路,其实你只对自己重要,你对这个世界是没有意义的,你就是你全世界最重要的人。

所以放下执念,把自己当成一棵树,把经历当成一阵风,那些人和事只是在某些时刻经过了你。经历了,就让它过去,过去了就不再思虑。

其实,我们只是来体验生命,什么都拥有不了,什么都留不住的。所以不需要证明什么,更没有什么事情是一定要实现的。

因为我们死了之后,这个世界上将不会有我们存在过的任何痕迹。什么虚荣,什么面子,什么功名利禄,什么人情世故,都没有意义了。死亡本身并不可怕,可怕的是到死的那一刻,却发现,我们从来没有真正的活过。

我们来到这个世界,就是不断的尝试,收获感受,然后放下。看看花怎么开,看看水怎么流,看看太阳如何升起,看看夕阳如何落下。经历有趣的事,遇见难忘的人,生活原本沉闷,但跑起来不就有风了。所以你是按部就班的去完成人生清单,还是让每一天都过得充实快乐呢?

解决树莓派官方系统在浏览器打开网页无法显示Emoji的问题

最近写了个《玄乎儿分光镜》,(体验地址 http://fangyuanxiaozhan.com:4000/register )可以基于八字,自动测算每天运势,非常适合放在树莓派运行,我的树莓派使用的是树莓派官方系统 raspberry pi os , 使用Chrome浏览器打开网页发现无法显示Emoji 经过一番查找后,发现只需运行以下命令,安装emoji sudo apt-get install fonts-noto-color-emoji 最后重新启动浏览器,即可! 本文永久更新地址: https://v2fy.com/p/2025-05-09-14-12-37-show-emoji-in-raspberry-pi-os/

巷子里的麻辣记忆

刚在鲁祖庙逛完复古花市,转角就跌进石灰市宏声巷的烟火褶皱里——毛记烧鸡公的门头斑驳了20年,却日日飘着勾魂的椒麻香。掀开塑料门帘,呛辣的香气瞬间攻占鼻腔,那锅镇店芋儿鸡正咕嘟冒泡:现杀土鸡与郫县豆瓣爆炒,高压锅压出嫩肉,再投入芋头慢煨。红油里沉浮的芋头绵软裹辣,鸡肉一抿脱骨,连魔芋都吸饱了汤汁。"加点肥肠!"老熟客的吆喝声里,掉漆的搪瓷盆碰着折叠桌,墙上的泛黄奖状和鲁祖庙的老茶馆一样,都写着重庆人"味道才是硬道理"的倔强。

重庆鲁祖庙

重庆市渝中区鲁祖庙街位于解放碑商圈核心地带,是兼具市井烟火与文艺气息的历史老街。其得名于清末供奉鲁班的庙宇,后演变为充满山城特色的传统街区。街道狭窄曲折,保留着青砖灰瓦的巴渝民居和民国建筑,如见证抗战时期的"鲁祖楼"。如今经改造后,传统与潮流交融:沿街分布花市、茶馆、老火锅店,同时引入文创店铺、网红咖啡馆和艺术空间。标志性的"鲁祖庙花市"延续数十年,成为市民记忆符号。

打破开放式耳机音质壁垒!夹耳也能玩HiFi?弱水这波真拿捏了!

引言

弱水时砂这个品牌,相信我的粉丝已经很熟悉了。作为成都本地的一个品牌,熊猫我也介绍过很多次了,甚至还自掏腰包买了不少送给粉丝。作为一家专注HIFI音频的厂商,这几年在TWS领域也做得风生水起。毕竟有深厚的音频技术打底,所以弱水这两年推出的TWS耳机,我基本都入手体验过。其中最喜欢的还是Earfree i5,不仅价格亲民,音质表现也非常出色,是我最近一两年主力使用的TWS耳机。
Earfree i5

其实早在去年,弱水就已经推出了自己的开放式耳机,不过因为我平时一直用的是Earfree i5,也就没再入手新的。直到前段时间我搬到县城生活,买了一辆小电瓶车,每天骑着到处跑。骑车的时候想听歌又不能戴入耳式的,自然就想到开放式耳机了。于是最近我也入手了弱水时砂去年推出的Openfree。
外包装

外观

Openfree外包装依然延续了带封条的设计,有三种颜色可选:夜幕黑、月影白和春芽绿。前两种是常见的黑白配色,比较经典百搭;而绿色款从官图来看显得格外清新文艺,很适合夏天,果断选了春芽绿。
春芽绿

实话实说,实物上手后的质感其实比官方渲染图还要更惊艳一些。这个绿色看起来很素雅,配合钢琴烤漆工艺的处理,整体光泽感很强。嫩绿色调虽然低调,但又透着一股子时尚感和个性。
外观图

Openfree采用的是耳夹式开放式设计,单耳重量控制在5克左右,佩戴起来几乎没有什么负担。耳机本体和充电仓采用了统一的配色方案,整体感更强,看起来非常清新素雅,戴在耳朵上自带一种文艺气质,风格偏中性,无论男生还是女生都很适合
耳机本体

Openfree的C桥部分采用了超柔软的硅胶,佩戴时贴合感很好,而且弹性十足。即使日常频繁弯折也不容易损坏,耐用性相当不错。耳机轻轻一夹就带好了,佩戴起来很舒服,比较无感,经常忘记还戴着耳机。
细节图

配置

说完外观,咱们再来聊聊配置。这两年我用过不少开放式耳机,但像Openfree这样,能同时支持LDAC、LHDC、LC3,再加上常见的AAC和SBC一共五种传输协议的开放式耳机,还真是头一回见。弱水这款应该是目前市面上首款支持这么多协议的开放式耳机了。
五种协议支持

硬件配置上,Openfree采用了全新设计的新型液晶振膜Planck动圈单元,根据夹耳式耳机的使用需求,进行了深度定制化的设计,本身具备LDAC和LHDC音频解码,加上专业的音频模组Cadence® Hi-Fi DSP,在声音的解析和还原上是完全不逊色常规几百元价位的TWS耳机了。
协议介绍

在声音传递方面,Openfree的设计非常有讲究。它的出音孔是扁扁的,更加贴合耳道,耳机腔体是根据国人的日常佩戴习惯和耳廓结构进行优化设计的,通过特定角度实现精准的定向发声。不仅如此,不同的佩戴方式还能触发不同的佩戴补偿效果。通过合理调整佩戴位置,可以在物理层面有效减少漏音问题。再加上特定位置的声音输出设计和音频补偿算法加持,整体听感更加饱满。就我个人体验来说,Openfree是我目前用过所有开放式耳机中,低频表现最出色的一款。
传声体验

通话方面openfree的表现是毫不逊色。AI算法的加持下,更好地抵御风噪,通话更清晰。我平时经常骑车的时候戴着,对面也能够很清晰的听清说话的内容。
通话

在开启游戏模式后,Openfree借助LC3音频解码的支持,能将延迟压低到仅20ms,几乎感受不到声音延迟。再加上LC3本身的低功耗优势,耳机在单耳使用下可实现约10小时的连续播放,配合充电盒整体续航可达约52小时。这样的表现对于日常通勤、骑行或者长时间听歌来说,完全不用担心电量问题,续航体验非常安心。
续航表现

音质

说会音质表现,以下的测试均为LDAC协议,并开启弱水BALANCE调音下的测试得到的个人听感主观描述。这里还得提一嘴,弱水的APP是真的干净啊,没有广告,没有弹窗,国内很少看到这么纯粹的软件了。
软件

首先用了王力宏的《爱错》作为试听曲目,Openfree对他的声音还原非常到位,那种细腻又温暖的嗓音表现得恰到好处。这首歌在演唱上有很多真假音切换、头声与胸腔共鸣的细节,对耳机的人声解析能力是个不小的考验。而Openfree在这方面的表现令人满意,不仅清晰捕捉到了人声的细微变化,在转调或离调时也没有出现人声和伴奏混在一起的情况,整体声场分离度非常出色。
人声分离

前面也说到了,Openfree的低频表现非常不错,这里在APP启动BASS音效模式,试听曲目《Don't Be So Serious》,也是游戏《死亡搁浅》的原声。(强烈安利这首歌)

这首歌中不仅有密集的贝斯线条,还有厚重的底鼓节奏,搭配本身就极具磁性的男低音,对耳机的声场分离能力和低频控制力提出了很高的要求。在开启BASS音效模式后,能明显感受到贝斯线一层层推进,为整个低频构建出了清晰的轮廓,低频质感扎实、密度感十足,完全没有那种空洞发虚的感觉。底鼓部分也被很好地突出,每一次敲击都干净利落、充满力量。整首歌听起来不仅深沉有力,还带着一种恰到好处的弹跳感,氛围感拉满。
P9957699.jpg

续航也是一大亮点。官方宣称搭配充电仓至高能有52h的续航。我没有具体测试过,不过实际体验下来,一天正常使用强度下4、5个小时,充一次电大概能用一个星期,日常使用完全足够了。双设备连接、防水防汗该有的都给配备上了。

总结

不得不说,openfree真的让我非常惊喜。200多的价位,不仅声音素质高,佩戴舒适,配置很也不错!可以说性价比直接拉满!照这个情况来看,它很可能会成为我未来很长一段时间的主力耳机。

以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
尾图

梦魇之脱离诀窍

昨晚不知道几点醒过来,看了一眼熟睡的娃,没看手机,过了会儿整个人处于那种眼皮沉得像灌了铅、但脑子异常清醒的状态。想动一下手翻一下身时发现动不了,就在快要被鬼压床抓住的时候,我猛地反应过来以前经历过这个!立刻咬着牙拼命摇头,像甩掉噩梦似的,硬是靠脖子晃动的感觉把自己拽回现实。以前在网上搜索过类似的博文,有人说靠蹬脚来脱离,我试过没有效果,对于我来说最有效的办法就是摇头。 我第一次遇到这种状况还是刚结婚的时候。当时迷迷糊糊躺在床上,天花板上忽然出现一群闪着微光的小飞人,像动画片里的萤火精灵似的转圈飘着。正看得入神呢,它们毫无预兆地齐刷刷冲我脸上扑过来!我吓得心脏都快跳出喉咙,但身体像被水泥封死了,连手指尖都动不了,张大嘴巴却发不出半点声音。天亮后我问我老婆昨晚我喊你怎么不拉我一把,她莫名其妙?言我昨晚并没有喊她。好吧,想想不过是幻觉,但当时那种眼睁睁看着危险逼近却无能为力的感觉,真是比坐过山车还刺激。 已经好多年没经历过这种情况了。特此记录一下。好在昨晚那个状况没有梦到有什么东西扑向我。不至于让梦境更加的恐怖吓人。

刻板偏见诞生路径

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

楠溪江自驾Day3 - 探秘暨家寨

本文记录了作者从美岙村出发,经过巽宅镇、坑口村、金溪水库等地点,最终到达暨家寨的自驾旅程。途中欣赏了楠溪江源头的美景,探索了山黄线和铁金线的险峻山路,体验了浙南山地村落的风土人情,最终在暨家寨度过了一个宁静的夜晚。

记录二五年五一之短暂回归家庭

如要阅读全文,点击标题跳转。打工在外,每年能够回家的机会也就五一,十一和过年这三次了,于是,积累在假期账户里的年假,育儿假基本都会在这些假期中,拼接使用,今年五一,我再次都请了几天,从而得以有一个不短的时间在家里陪老婆孩子。本文拾取一些片段,来记录这一小段生活。

个人网站博客可以尝试的 100 件事

We write to taste life twice, in the moment and in retrospect.

—— Anaïs Nin

James 分享的 「100 things you can do on your personal website」 很有趣,介绍了博客作者可以尝试的 100 件事。他还参考了 「Ideas for Your Personal Website」 ,也有很多有趣的建议!


本文将其翻译成中文,并为一些中文读者可能疑惑的概念添加了注释:

  • 如果你还没有个人网站,可以搭建一个!你可以使用任意喜欢的建站工具,比如 WordPress、micro.blog、omg.lol 等,不需要编程或复杂配置即可快速上手。当然,喜欢挑战的话也可以自己编写代码。
  • 写一篇博客,分享你感兴趣的事、最近让你开心的经历、过去一周学到的新东西、读完一本书后的感想、你玩喜欢的游戏的攻略,或者任何你感兴趣的话题。
  • 分享一道最近做的美味菜谱。
  • 发布一张最近拍摄的照片。
  • 创建一个友情链接(博客圈),链接你喜爱的个人网站。
  • 添加一个 robots.txt 文件,明确限制搜索引擎和AI抓取你网站的内容。
  • 为你喜欢的乐队、电视剧或其他事物创建一个特别的「纪念馆」或「粉丝小站」。
  • 制作图像热区图,让访客点击图片不同部分探索更多信息,比如你书桌上的物品介绍。
  • 分享你最喜欢的书单。
  • 创建电影推荐专页。
  • 提供一个深色模式选项,让读者更舒适地阅读。
  • 注册并使用一个属于你的专属域名。
  • 添加一个有趣的小彩蛋。
  • 搭建留言板,让大家畅所欲言。
  • 给你的网站或特定页面设置背景图片。
  • 设计一个网站寻宝游戏,让访客通过寻找线索探索你的网站。
  • 在 HTML 代码中加入清晰的注释,帮助新手理解你网页各部分的用途。
  • 分享最近喜欢的网页,比如文章、博客、摄影作品或游戏。
  • 为图片添加描述文字。
  • 使用 WAVE (Web Accessibility Evaluation Tool)工具检查网站的无障碍访问性。
  • 用 PageSpeed Insights 优化网站速度。
  • 如果你发布学术作品,添加引用说明。
  • 创建一个“反向图书馆”清单,记录你拥有但未读的书籍。
  • 制作一个文字小游戏。
  • 记录网站更新日志,开启 #网站开发日记。
  • 分享你最近学到的新词列表。
  • 添加 RSS 订阅功能,让访客轻松关注更新。
  • 创建“历史上的今天”功能,链接到以往同日期发布的博客。
  • 添加“跳转到内容”链接,提升网站对屏幕阅读器的支持。
  • 制作文章归档页面。
  • 为网站设计一个专属吉祥物。
  • 制作并添加一个 88×31 像素的小按钮图标,通常用于网页、博客、论坛等地方的链接按钮或标识图标。这种按钮图标在早期互联网时代非常流行,经常用于交换链接、展示合作伙伴或赞助商的链接。
  • 加入一个网站联盟(webring),比如 十年之约开往 Travellings
  • 翻译网站的某个页面到你熟悉或正在学习的语言。
  • 创建打印样式表。
  • 确保所有链接有效无误。
  • 发起博客活动,邀请朋友们围绕特定主题每月发表文章,并轮流确定主题。
  • 添加 rel=me 链接,认证其他平台上的个人资料,比如在博客自我介绍中列出自己的 Mastodon、GitHub、Twitter 账号。
  • 做一些额外的惊喜内容(おまけ)。
  • 如果你想展示专业作品,可以创建 HTML 简历页面。
  • 使用语法高亮工具(如 Prism.js)美化代码片段。
  • 检查和优化 head 标签中的内容。
  • 为网站添加搜索功能。
  • 创建“此刻(now page)”页面,通常用来展示网站拥有者当前正在关注的事情、工作、生活状态或感兴趣的项目。
  • 使用迷你图(sparkline)展示文章发布频率。Sparkline 是指通过一种小巧、简洁的折线或柱状图,以极小的空间清晰地展现文章发布数量在一段时间内的变化趋势。热图也是一个很好的选择。
  • 尝试不同的字体风格。不同的字体适合不同的主题,可以一起调整。
  • 优化标题字号的层次区分。
  • 在文章末尾加入装饰性分隔符。
  • 使用 lite-youtube 组件加快视频加载速度。
  • 更新网站配色方案。
  • 创建 HTML 元素样式展示页面,辅助设计优化。
  • 编写趣味问答,邀请朋友参与。
  • 为网站添加 Webmention 支持。Webmention 是一种开放的 Web 标准,用于在不同网站之间发送和接收消息通知,使得网站可以相互引用、交互以及进行社交化沟通,WordPress 自带该功能。
  • 制作共享使用的网页组件(web component)。
  • 为图片设置鼠标悬停效果。
  • 发布一段自己的名字或昵称发音录音。
  • 在特别的节日为网站换上主题装扮。
  • 分享你亲手绘制的画作。
  • 在主页添加互动式像素网格。
  • 标记网站内容为非 AI 生成,可参考这个项目 Not By AI
  • 分享你喜爱的播客清单。
  • 为你的兴趣爱好专门开设一个新的网站。
  • 制作网站图标(favicon)。
  • 写一篇个人网站发展史。
  • 添加背景播放音频,如鸟鸣或咖啡厅氛围。
  • 制作个人风格的情绪板(mood board),是指通过搜集并组合图片、颜色、文字、材质等元素,来视觉化呈现个人喜好、风格偏好或某种特定氛围的过程。
  • 使用 HTML 的 details 和 summary 标签。
  • 自定义文本选中时的高亮颜色。
  • 帮助朋友搭建他们的网站。
  • 为自己撰写网站维护文档。
  • 为喜欢的艺术作品撰写评论。
  • 与朋友合写一篇共同兴趣的博客。
  • 更新旧博客文章。
  • 在文章中添加旁注(sidenotes)。
  • 为长文章创建目录。
  • 为外部链接添加识别小图标。
  • 添加悬浮卡片(hovercards)。悬浮卡片指的是当用户的鼠标指针悬停在某个元素上时,会弹出一个小卡片,显示额外的信息或提示。

James 实际上创建了 78 个想法,剩余的希望群策群力,由大家一起共创。

我也有一些想法,大家可以尝试:

  • 为网站换上一个有趣的域名。
  • 创建一个网站插件,如 WordPress 插件
  • 制作或回答一个问卷,如 博客作者呀,我想采访你这 9 个问题!
  • 和网友们语音聊天,如 交个朋友
  • 创建一些能和读者互动的活动,如 让风儿寄出一份不确定性中的惊喜
  • 创建一个「赞助支持」页面,如 支持
  • 创建一封延时发布的博客,可以是 1 年后,也可以是 10 年后,那将是一封给未来自己和读者的信。
  • 定期分享友情链接中有趣的文章,多和朋友们交流,如 友邻们
  • 连载一份内容策展,分享近期喜欢的事物。
  • 使用一个博客数据统计系统,如 Google Analytics 或 umami。
  • 尝试在线下见一下友情链接中的好友。我的友情链接中有 6 位线下见过,5 位添加友链前就认识。1 位(1nan)是添加友链后发现彼此在英国的同一个城市,骑自行车 15min 左右就能到,于是相约见面。
  • 和朋友发起一些博客竞赛,督促彼此定期更新。此处 @ 陈仓颉印记,不知谁能坚持到最后!

今天的天气很好,祝大家一切顺利!

Dayu

跑个步而已

每次在单位户外跑之前,我都会沿着我跑步的路线先走一遍。这样的用处是先考察一下路线上面有没有什么异物,比如树枝、石头或者其它垃圾,我可以先把它们清除掉。最重要的事情我就是要走一走那条路线上,看一下有没有一些不安全的动物。虽然实际上走一遍,我也不能保证在我之后大概50分钟的时间内,那条路线上会不会有什么变动,但起码先走一走,比较心安。以前我不干这种事情,开跑就开跑了。之所以以前不干这种事情,是因为跑步的那条路线比较长,一圈就有1.6K,现在一圈还不到0.4K。因为以前一圈的距离长,我需要在那条路线上重复出现的次数不多,现在我需要在那个小圈里面绕很多遍,如果每次到那个地方都有某些障碍,显然就会增加我崴脚的几率。因为距离不远,所以先走一圈也没什么问题,尤其是以后如果我发现某条路线上积水太多,我就直接不走那条路线了。

但即便这样,我还是没办法避免一些情况的发生,比如那条路线上停满了小车。为什么明明都下班了,单位的人还不开不把车开走,要开走了赶紧开,不开走的就不要动了。他们很喜欢在那些天色半黑不亮的时候开走,那个时候是最危险的。车灯要不要开?路灯要不要开?路灯通常都不会那么早开,有时甚至是天全黑了路灯都没开。那些路灯不是用来把路照亮的,只是用来照树数的,是景观灯。车灯开还是不开?开大灯的话,直接会亮瞎我的狗眼,不开灯的话,开车的人一脚油门看不到我那该怎么办呢?我永远都预测不了到底我跑步的那50分钟里那条路有多少小车要开走?开走也就算了,有些小车在我跑步的那段时间里先开走了又开回来了,这个是让我觉得最恶心的。除了小车,还有单车,还有行人。单车和行人相对来说避让都比较简单,因为大家的速度都不快。让我最讨厌的行人是那种并排几个一起出现的,等于是一个封路的状态,每次都得绕。如果他们不在我跑步的路线上,那也就算了,但有些时候,他们直接截断了我的跑步路线,所以我就只能绕。绕行人绕单车绕小车,这些绕最终就会导致FR255识别出来的那个距离跟我预测的不一样。我也觉得这很神奇,为什么我明明绕远了,反而觉得我那段路要跑更远才结束呢?这个奇怪的现象反复的出现。所以为了不让自己的距离被坑,每次我都希望别遇到那么多幺蛾子,不要让我老是避让,但是这个纯粹是奢望。除非我不在那个时间段跑步,但即便我不在那个时间段跑步,别人依然会在那里散步,那里依然会有自行车,那里依然会有小车出进出。我在那里出现50分钟就只是一周一次而已,但即便这样,我总是会遇到一定会出现或者不知道为什么这一次出现了的车、人,有时还有猫。

有一次跑着跑着,一个橘猫就在我前面几米的地方突然躺下,肚皮向上。显然就是一副要碰瓷的样子,于是我赶紧呵斥了它一声,它肯定听不懂我在说什么,但是它完全听懂了我的语气,赶紧起来一溜烟消失了。遇到猫还能吓唬他一下,遇到狗在远处吠你,还真一点办法都没有,我还得提防它觉得吠不过瘾还得过来真的干扰我一下。这个事情的确发生过,所以那个时候我只能一边跑一边提心吊胆。

跑个步而已,为什么居然可以这么危机四伏。

逃离都市喧嚣!28岁,48.88拿下144平县城大平层,开启养老新篇章

引言

最近更新断了好几天,不过在粉丝群的应该知道熊猫这几天搬家,所以其实已经有一周的时间没有写新内容了,前面发的也都是已经保存在平台的存稿。从看房到买房到搬家,一共折腾了有半个月的时间,算下来看房反而是最快的,上午看完下午就给了定金,现在想想都觉得很神奇。
买新房

其实熊猫并不是成都的土著,而是来自全国贫困城市前十名的地方,具体位置就不说了,但要说家里穷也不至于。从15年大学到成都之后便一直定居在成都,算下来满打满算刚好接近十年的时间了,这十年在成都我完成了从单身到恋爱,从一个人到两个人的家庭,甚至现在家里还添了小熊猫,最早认识熊猫的粉丝网友其实是见证了熊猫从单身到组成家庭,乃至小熊猫已经三岁这个阶段的。想来时光是真的过得快,28岁变走完了很多人三四十岁都还没经历的事情。

为什么买房?

说白了就是成都的房子不够住了,套二的房子总面积大概接近100平的样子,如果只是一家人住那完全足够了,但你要知道我光NAS就有好几台,常用需要开机的有极空间的Z423、绿联的DXP6800 Pro以及铁威马的F6-424,再加上家里两台台式机、2台3D打印机、一台照片打印机以及一台打印扫描一体机等等,光是我自己的东西就已经非常拥挤了,这还不算上小熊猫的东西。
搬家中

小熊猫还有她的婴儿车、学步车以及自行车、滑板车等等,加上一大箱的玩具,积木桌以及非常多的绘本,说实话,如果不是整理的好家里简直没有地方下脚,再加上后续可能会考虑二胎什么的,所以套二说实话对我真不够住。

为什么离开成都?

这个其实也很简单,即便比不上北上广深,但成都的消费与房价依然不低,如果想要重新买一套更大面积的房子,那么单价即便是现在居住的地理位置来算也要1.2W一平左右,144平算下来就要144万了,加上税务以及房子的硬装软装没有160万应该是住不进去的。

再一点就是县城真的要舒服很多,都说成都的生活节奏慢,但实际上呢?不知道大家听没听过,即便是孙悟空来了成都也得打300个电话才能走,成都的就业本身就非常畸形,90%的工作都属于销售行业,而小县城虽说工作会更少,但其实位于成都周边的城市发展都还不错,而我这边选择的城市更是全国人口大县,其实并不差。
现状

这里也奉劝大家,如果经济条件一般或者自身没有特长,千万千万不要来成都,看似美好实际只有带过才知道,少不入川,老不出蜀。

房子如何?

房子个人非常满意,虽说是老小区,但一梯两户,一栋楼也才11楼,算下来一栋楼也就22户人,加上144平的大面积,户型也是非常不错,还是非常正的坐北朝南,这样的房子即便是拿到成都那都是属于改善型房子,没有300万是不可能买到的。
房子交易

前几天才完成搬家,不得不说找搬家公司是真的省事,4.2米高的箱庭货拉拉我的东西居然装满了,越搬越奇怪,我真的有这么多东西?不搬家永远不知道原来家里有非常多的剪刀、指甲剪、胶布等等。
货拉拉

货拉拉找了两个小哥,一共搬了大概5趟吧,加上两边都有电梯,然后距离有80公里左右,高速费用加停车费用以及搬家的费用一共花费1000左右,这个价格个人觉得还是非常值得的,毕竟全程都是小哥搬,我不需要出力,上去帮忙小哥也一直说不要动不要动,放着就行了。果然这世界花钱就能解决很多麻烦事。

后续的计划

虽然请了搬家公司,但到家之后的整理工作还是得自己来,而且新房子准备大部分家电都考虑智能化,所以选择了很多米家的产品,后续的网络布局、线路设置等等都是麻烦事,加上搬来的各种东西也需要位置去放,这才是最头疼的地方。
新家

后续会慢慢更新家里的装修以及家电的选择的文章,房子是老房子但还是得年轻化,这样住着才舒服,先把网络解决好再慢慢来整理吧!

写在最后

网上大家都在说躺平躺平,不过实际执行下来的人又有几个?而我,28岁真躺平了!

以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
尾图

群晖数据库(MariaDB10)无法外网访问?简单设置后公网访问家中数据库

公网访问数据库

前言

最近部分人问我怎么能在外网环境下访问群晖的数据库,群晖自带的数据库只能在内网环境下访问,就算映射端口后也不能进行外网访问。而我们有时候部署容器或者操作其他一些东西必须要用到数据库,当然你也可以选择实用docker再部署一个数据库,但这样的行为就多此一举了。那么有没有办法让我在外网环境下访问群晖的套件数据库呢?答案是有的。

调整过程

首先我们需要安装以下套件:

  • 安装MariaDB10
  • 安装phpMyAdmin
  • 安装web station
    安装好之后你会发现在群晖的web文件夹下会多出一个phpMyAdmin文件夹,这里便是群晖的数据库文件夹了。

群晖数据库

随后我们打开Web Station,这里我们需要安装php,并将扩展全部勾选上。

php设置

进入虚拟主机设置,选择新增,文档根目录选择web/phpMyAdmin,如果你有域名,那么你可以选择基于域名,如果没有就直接选择基于端口就行,选择你刚刚扩展全开的php,随后确定即可。

虚拟主机设置

连接

随后便可以通过虚拟主机连接数据库了,这里需要注意如果无法登录报错。

报错

这个其实就是没找到mysql socket,所以,我们可以看一下mysql的socket,打开MariaDB10,可以在下方向看到socket位置。

位置

这里直接打开phpMyAdmin文件夹,修改config.inc.php

# 注释
//$cfg['Servers'][$i]['host'] = 'localhost'
# 增加
$cfg['Servers'][$i]['socket'] = '/run/mysqld/mysqld10.sock'

随后就能登录访问了。

外网链接

总结

数据库的外网连接还是比较重要的,很多容器都是需要自己手动连接数据库的。同时如果你有其他项目需要用到数据库,也可以通过这样的方法连接家里的服务器。

我的2024年复盘:好像变了,又好像什么都没变!

再见2024

前言

当你们看到这篇文章的时候应该已经是2025年了,但这篇文章其实写于2024年12月31日的晚上十点

不知不觉2024就已经只剩下最后两小时,和数码设备打交道的我知道,再过两小时身边的所有设备都会从2024跳到2025了,不知为什么还有点恍惚。

如果不是跨年,或许我们日常中根本不会在意日期上月份前面的数字,随着今晚数字从24跳到25,明天又是只看月份与日期,唯一的变化就是你可能老了一岁,还有签合同一定要注意年份

为了更好的面对即将到来的2025,在跨年的头一天晚上,没有烟花礼炮,也没有彻夜宿醉,而是选择在电脑面前认真的回答40个问题,回顾下2024年。

该文章的模版来自于github仓库40-questions,链接:https://github.com/kepano/40-questions

1. 你今年做了哪些之前从未做过的事?

其实熊猫算是一个非常愿意接受新事物的人,内心非常憧憬去了解或者尝试更多新东西,但每当计划执行到行动这一步时,总会退缩。

  • 离职。并不善于社交的我选择了逃避,这也是最开始做自媒体的原因。逃避或许可耻,但真的很有用。
  • 建立了3000多人的微信粉丝群。熟悉熊猫的应该知道,其实粉丝群基本不会存在什么带货或者硬广,很多时候都是承蒙粉丝厚爱,从没想过自己能有这么一天,可以说2024整一年,除了老婆最感谢的就是粉丝朋友了。
  • 交到了一些很好的朋友。离职了虽然社交圈变得更为狭窄,但随之而来的也交到了很多朋友,或许是来自合作方的,也或许是媒体朋友。
  • 学习了摄影

    2. 你有没有遵守年初时和自己许下的约定?

    2024其实有做计划,回过头来看完成度可能一半不到吧!

还记得在2024值得买年度总结以及百大访谈中自己的话,不忘初心,但实际因为现实的各种问题,其实已经丢了一半了。虽然还是尽力的去输出粉丝们喜欢以及自己喜欢的内容,但商业化的占比也在逐渐增加,这个明眼人都能看出来。

一方面来自生活的压力,另一方面可能是真的很累。商业的输出属于工作,目的性非常简单,但当想要输出一些个人观点时,很多时候并不是生理上的乏力,而是精神乏了。今年一年写了接近200万字,实际发出来的只有150万字左右的内容,很多都被自我消化了。

年初就说要更新视频内容,但实际上一直到年末了,一条视频都没有发出。

3. 你身边有人生孩子了吗?

熊猫算是结婚生子都比较早的人,所以实际上身边还是有很多同龄人甚至还没结婚,没谈恋爱。

4. 你身边有人去世了吗?

身边的确是没有,或许有,但可能感情并不算特别好,并没有关注记忆。

5. 你去了哪些城市/州/国家?

  • 北京
  • 深圳

    6. 明年你想要获得哪些你今年没有的东西?

    更好的心态以及健康的身体

    7. 今年的哪个或哪些日子会铭刻在你的记忆中,为什么?

  • 九月份孩子生病。抱着进医院,测出血氧只有85%左右的时候,要求住院的时候,看到孩子抽痰的时候。
  • 十一月份。具体的事情就不多说了

    8. 你今年最大的成就是什么?

    最大的成就还是自媒体吧!其次就是家人和自己都还健康快乐

不过真让我回头想,我真不认为这一年有什么大的成就,毕竟对比去年好像变了,又好像什么都没变,收入还是差不多,商务是比之前多了,但实际算下来貌似收入并没有想象中这么高。

粉丝群也算是一个成就吧!对于文章我不在乎数据如何,但我会很努力的去维护粉丝,和粉丝聊天吹水其实也很快乐,感谢一年的关注与支持。

9. 你今年最大的失败是什么?

  • 未更新的视频频道
  • 说好的学习日语,结果学了一个月放弃了
  • 自己着手的项目两年了还是未完成
  • 静下心来通关一部游戏也没做到
  • 花钱还是不考虑后果

    10. 你今年还遇到过哪些困难?

    九月份吧,还是小孩生病那次。

    11. 你今年是否生过病或受过伤?

    比较健康,并没有什么大病,小感冒也很少

    12. 你今年买过的最好的东西是什么?

    一堆老镜头,便宜有特色。比如太苦玛系列、泽尼特镜头、柯尼卡镜头以及八羽怪等等。感兴趣的话后面可以出一篇文章单独写写这些老镜头的魅力。

太苦玛55-1.8

13. 谁的行为值得去表扬?

  • 家里的小朋友语言能力越来越强了,学习能力也很棒!
  • 老婆能理解熬夜写稿以及情绪波动

    14. 谁的行为令你感到震惊?

    离职前的老板(有可能他会看到这篇文章,或许呢)

    15. 你大部分的钱都花到哪里去了?

    除了日常生活开销,其他就是工作投入了,镜头、相机以及各种工作相关的,还有就是粉丝群抽奖。(咱是真抽,没有黑幕)

    16. 有什么事让你感到超级、超级、超级兴奋?

    每次有感兴趣的产品的商务,例如NAS、路由器、键盘等等,虽说爱好变成了工作,但从工作中不断获取到新东西,输出新内容并没有让我觉得枯燥乏味,我还是喜欢折腾这些,也可能是年龄又大了一岁?

    17. 哪首歌会永远让你想起这一年?

    《戒网》-黑神话插曲。

    18. 与去年的这个时候相比,你是...

    没什么变化,只不过更加不自由了,当然指的是心理上。

    19. 你希望自己能做得更多的是什么?

    抽时间多放空自己,写稿真的是个费脑子的过程。

输出自己内容,没有利益的内容!

对孩子更耐心一点吧!

20. 你希望自己能做得更少的是什么?

拖延症!其实熊猫拖延症并不厉害,我指的是工作上,但做了自媒体之后从年初到现在,其实越来越有趋势了,希望能改一改。

21. 你是如何度过节假日的?

没有节假日!

22. 你今年坠入爱河了吗?

23. 你是否有讨厌某个你去年此时不觉得讨厌的人呢?

有,还不少!但本不是一个圈子的人,虽讨厌,但并不厌恶。

24. 你最喜欢的电视节目是什么?

如果电影或者电视剧也算的话,今年最喜欢的是《边水往事》

25. 你读过最好的一本书是什么?

英雄联盟的《破败之咒》以及任天堂的《游戏开始》

26. 你今年发现的最好听的一首歌是什么?

《戒网》,老婆听了还问了我好几次歌名

27. 你今年看过最喜欢的一部电影是什么?

《九龙城寨之围城》、《破碎人生》

28. 你今年吃过最好吃的一顿饭是什么?

饭其实都差不多,但前几天老婆做的新年送礼的饼干很好吃

29. 有什么是你想要且得到了的?

家人健康平安

30. 有什么是你想要却没有得到的?

还是没有迈出做视频的第一步

31. 你生日那天做了什么?

忘记了,不过马上过生日了

32. 有什么还未发生的事,如果发生了,会让你的这一年变得无比满足?

还是视频,这是个魔咒!!!每次写稿或者收到什么产品,我都会想着要不拍个视频?

但随后还是放弃了

33. 你会如何描述你今年的个人时尚风格?

从不在乎穿着,毕竟常年不出门,无所谓!

34. 是什么让你保持理智?

很多时候并不理智,都说理智的人不能从文,或许吧!

35. 你最欣赏哪个名人/公众人物?

当然是那个男人!

36. 哪个政治问题最令你有感而发?

不关心这些,做好自己就够了

37. 你想念哪些人?

老去的人以及年轻的人

38. 在你新认识的人之中,谁是最好的?

24年认识太多人了,都非常好,感谢他们!

39. 今年你学到了什么宝贵的人生经验?

放空自己!

40. 能够总结你这一年的一句话是什么?

心专才能绣得花,心静才能织得麻

写在最后

今年不想给自己里什么目标了,随心而动吧!

这篇只是作为熊猫的个人记录,如果想要更好的认识我,可以多多关注!

最后感谢粉丝朋友一年的陪伴,感谢平台的不嫌弃!peace and love

年终总结:练习时长一年的值得买首席,这一年,我都收获了什么?

满打满算,已经在值得买发文一年了。时间过得真的好快,回想刚入站那会儿,甚至还有健康码这种东西。

注册一周年

2023年我的历程

时光荏苒,写这篇文章时是2023年12月12日,距离我初次踏入值得买这个平台已有405天的时光。从2022年11月2日到今天,整整一年一个月的光阴里,我在这片天地里创作了402篇原创作品,分享了5次珍贵的爆料。在这段旅程中,我与2.1万位小伙伴结缘,收获了他们的喜爱,点赞数高达1.6万,收藏更是多达8.2万。

年度数据

说实在的,熊猫并没有觉得自己是个勤奋的人。我一直认为自己带着一点惰性以及拖延症。然而当我看到在405天的时间里,竟然累积创作了402篇原创作品后,内心倍感欣慰。一方面,我庆幸自己并没有因为各种原因而放弃创作这件事,坚持按照自己的想法和节奏输出内容;另一方面,我不禁感慨时间过得真快,甚至自己都没有意识到已经创作了这么多内容,同时也得到了这么多人的关注。

字数统计

或许会有那么几位熊猫的老粉,同时我也非常感激他们。正是因为这些老粉,从熊猫博客时期开始关注我,并向我推荐了值得买这个平台。入站前我的创作大概在50万字左右,而仅仅一年的时间,我将字数增加到了180多万字,跨越了五位数到六位数。

公众号

在2023年的3月,受到粉丝的影响力,我成功获得了公众号认证。通过公众号,我结识了许多朋友,并建立了自己的NAS社群。同时,我也非常感激国内各大NAS品牌,比如极空间、绿联和铁威马等。在过去的两年里,他们也在不断宣传,扩大了NAS的影响力,吸纳了许多新鲜血液。

粉丝群

截至今天,熊猫群已经拥有了上千名粉丝,并且这个数字还在不断增长。他们或许是因为对NAS感兴趣而关注我,或者是因为对有趣的数码产品感兴趣而关注我。无论出于何种目的,我都非常感激这个平台让他们能够认识我,并愿意了解我的内容。

2023年我的收获

对于获得成就这一话题,与其关注物质意义上的收获,我更加重视个人价值的提升。自从去年11月开始持续发布受到大家喜爱和感兴趣的内容,直至2023年4月,我荣获了首个殊荣——首席生活家。或许我并不清楚自己是否算得上最快晋升的首席达人,但无疑我是其中最勤奋的一位!

晋升首席

这一年中,我参加了平台的各种大小型活动,通过持续输出内容也收获了粉丝们的热情回应。在618活动中,我荣登长文榜的热度第二;而在双十一活动中,我更是双线作战,斩获第七和第一的佳绩。在感恩平台给予的机会之余,更加感激那些喜爱我的粉丝们。

618活动

双十一活动

这些都离不开粉丝的喜爱,毕竟平台给我提供了途经,但最终成就我的还是粉丝。而除了这些,便是来自各大品牌的认可,这对于我也很重要。在这期间我认识了威联通的运营大哥,人真的很NICE;也认识了绿联的一些技术开发大哥和市场小姐姐,都对我很关心;同时也很荣幸能得到极空间的邀约,参加了他们新品发布会。

品牌认可

当然,除了我主要的NAS内容外,一些其他数码的品牌也对我很关照。联想的大哥给我提供了新品内测以及首发的资格;黑爵也给我提供了很不错的产品,让我产出了全平台累计50万+阅读的数码产品长文。当然,大部分提供的产品我也都回馈给粉丝了,希望能在看我文章的同时收获一点东西。

粉丝回馈

一年时间,感谢大妈给了我22次众测机会,其中产品价值从一两百到两三千都有。这其中有大妈三宝,也有我所属领域的NAS,最便宜的从几十的中科院零食到最贵的博朗9系套装版,也是感谢大妈让我体验了一下上流的生活,用上了两千多的剃须刀。

众测收获

博朗9系

极空间Q2C

而在上半年,值得买的众测机制也做了一次大的改变,将以前的选人机制做了一定更改。现在增加了必中卷机制,通过完成必中卷任务就可以获得必中卷能量,而能量值又能换区各个阶段的必中卷。其中万能卷甚至能直接换价值上万的产品。

必中卷

这就给很多粉丝基数少或者之前的社区玩家很大的机会,只要愿意去发文分享自己的内容,那就有机会去换取自己喜欢的产品。不过每个必中卷产品的数量有限,所以如果你看中了某个产品,记得看好时间去抢哦!

能量

除了众测以外,这一年我累计收益金币6.8万,其中换了大约5千的京东卡,余出来的金币也兑换了一些值得买的周边礼物。不得不说值得买新出的旅行箱系列积木真的很棒,而对于我这种患有重度仓鼠症的人来说,一定会追着把所有系列凑齐的。

金币收益

此外,我很荣幸在报名了数十次品牌任务后被选中三四次。我参与了中级和高级任务,并且收益也还不错。在这方面,需要不断产出优质内容,积极参与站内活动,逐渐积累粉丝。也许有一天,你也能获得来自自己喜爱品牌的商业合作机会。

品牌任务

关于写作

最后还是想聊聊关于创作这件事。对于创作,个人并不排斥商务推广,但也谨记是什么让我能有资格去接商务推广,所以我也一直保持更新大家感兴趣的内容,同时也想把更多性价比产品或者有趣的产品写好,能给粉丝提供购买选择以及建议和意见。也很感谢粉丝从来不反感这些内容,甚至会给我推荐一些产品。

粉丝群现状

而对于新人,个人建议是定好自己的创作方向,深入去钻研你喜欢的内容。而不是为了热度去研究,这样到最后你会失去这份创作的乐趣,从而越来越厌倦创作这件事。这一年我也认识了很多大佬,交谈之下发现创作影响最大的还是心态,所以记得保持创作初心,而不是因为一些其他原因逼自己去创作内容。

大佬们

其次就是在内容上,熊猫习惯会制定创作计划,例如本周更新什么内容,我需要那些资料,在什么时间节点。或者我最近研究了什么东西,发现了哪些有趣的内容。我会将我想到的这些都记录下来,保持自己的创作节奏。这样有个好处,你永远知道自己要写什么,而不是每次到要写了再去想。

创作思路

因为需要在多个平台发布内容,并且考虑到一些个人习惯,熊猫一直使用Markdown语法进行编辑。要么直接在博客的编辑器中撰写文章,要么使用Obsidian写作。相较于常规的编辑器,Markdown具有更专注的写作沉浸感和预排版功能,并且适用于绝大部分平台,个人是非常建议大家能去学习使用的。

obsidian

在使用Markdown时,自然需要使用图床,个人建议是进行自部署。在这方面,熊猫采用威联通的464C2部署兰空Pro版作为图床。自部署的优点在于便于进行数据备份,同时数据本地化也更为安全。至于如何进行部署,您可以参考我之前写的关于威联通464C2的文章哦!

兰空图床

在拍摄图片时,可以选择使用手机或专业相机。手机能够呈现更真实的氛围感,而相机则提供更广阔的后期空间。通常情况下,我会选择手机拍摄一些日常生活物品,以突出更贴近生活的效果;而在拍摄电子产品或专业设备时,则会选用相机。至于相机的选择,如果条件允许,自然是选择好的设备。(大妈什么时候再送A7M4呢?)

A7M4

最后,创作这件事需要坚持,只有持之以恒的坚持才能从中收获到乐趣与价值。你需要源源不断的去获取写作灵感,多看多听别人的建议和意见,还需要不断去构思自己的文章标题、主图以及结构性。衷心的希望更多的人参与到创作中来,只有更多人来参与才能有更好的内容产出,维持这个社区大家庭。

写在最后

2023年收获太多,对熊猫来说注定是值得骄傲的一年,而面对即将到来的2024,只希望自己能记住今天写下的内容,不忘初心始终如一的为大家创作更为有用和有趣的内容。最后也希望2024,值友们能实现自己的阶段性目标,大妈也能始终如一的服务于大家越来越好。当然了,最后的最后还是想说一句,我真的很想拿百大!!!

巧用协议打通设备壁垒,绿联与群晖的数据互通指南

封面

前言

前段时间不是入了绿联的坑嘛,于是我就想着把群晖中备份的照片弄到绿联中去,再在绿联库中将同步的文件夹设置为公共用户,然后家里人绑定绿联。这样就能让家里所有人都能随时查看照片或者同步照片了,毕竟群晖是我的主要折腾地,照片还是转移一下比较好。
但是把研究了一会儿发现绿联貌似并不能与群晖实现同步,毕竟设备系统不同,而且绿联的同步只能与本地同步,并不能进行类似群晖的网盘等协议,这样一来只能从群晖入手。

过程

原理很简单,群晖自带的cloud sync是支持webdav的,并且绿联也是支持开启webdav的,那么就可以通过群晖链接绿联的webdav从而实现双向同步的工作。
首先我们需要打开绿联的webdav功能,进入功能面板选择网络服务在选择webadv,打开webdav,并设置共享路径以及端口号,在下面便会生成webadv链接。(如果是第一次设置网络服务需要新建账户)

绿联设置

这里我直接设置的根目录,这样方便群晖那边进行同步。
随后转到群辉,打开cloud sync,选择左下角+号新建链接,选择webdav,在这里我们输入绿联给到的webadv地址,并输入账户与密码。

webadv同步

最后根据自己需求进行配置同步的文件夹以及时间和其他选项就行了。

同步设置

我这里在绿联端专门新建了目录作为同步使用,这样比较好区分开文件。

同步情况

总结

在设置下,我想要同步的功能便实现了,除了照片我还将一些文件也一并同步了,毕竟绿联自带金山文档,群晖设置双向同步后我在绿联端通过金山文档修改的内容也能一并同步到群晖端了,群晖的office还是不太好用。
以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
点赞收藏关注

【粉丝答疑】双十一NAS怎么买?到手怎么玩?熊猫带你玩转NAS

又是一年双十一,作为专注于NAS领域的熊猫,每年此时都会收到众多粉丝关于NAS购买与使用的咨询。然而,并非每位粉丝都能直接联系到熊猫,且熊猫也无法面面俱到地解答每一个问题。因此,在双十一来临之际,特别开设此帖,旨在为粉丝们解答在NAS选购和使用过程中可能遇到的各类问题。同时,衷心感谢“什么值得买”平台提供这次专属答疑的机会,使我能够更加便捷、高效地为粉丝们提供服务。

NAS

本答疑帖旨在提供中立的产品建议,不包含任何品牌推广。请各位粉丝提出你的具体需求和预算,熊猫将根据这些信息为你推荐最适合的NAS产品,并附上详细的购买理由。同时,若你已购置NAS产品,熊猫也将在此帖中为你提供关于NAS使用的全面解答,帮助您更好地利用设备。

本次答疑将会持续到十一月十号,对于还在犹豫不决的购买者,建议你可以持续关注本帖,方便获取最新的建议和信息。同时,已经购买NAS的用户,也欢迎你关注熊猫,熊猫将持续发布关于NAS选购和使用方面的文章,助你充分挖掘手中设备的潜力。比心!!!

2022年度总结- 岁末将至,敬颂冬绥。 祝眉目舒展,顺问冬安。

2022年注定不平凡的一年,不过仿佛每年都这样说,但事实如此。今年年底,全国人民经历了放开带来的疫情冲击,命中率太高了!大家本适应了当下疫情生活,一次次的封控与管制,但大家在爆发时都还是坚持防疫的。无论工作人员还是普通人,在当下都扮演好自己那个角色,只想说中国民众真的是太配合了呵呵。。回想当年,虽然似乎都把疫情当成生活的一部分了,在这样的大环境下,给国家带来的经济压力不言而喻,这也是放开疫情的主要原因所在我猜。当然,事已至此无需深究,大家就该吃吃该喝喝安稳过好自己的生活就好了。
再说回我自己,就我本人来说,今年还是做了一些事情,不过整体大环境加之自己真的不够努力,当然这都是我自己的选择所以无可厚非,总的来讲我对自己全年打个6分吧,算是及格的一年。

{dotted startColor="#ff6c6c" endColor="#1989fa"/}

今年的年度总结会以问卷的形式,灵感来源于博友【风记得的】的年终总结。通过问题的形式来让各位能够读下去,并且能够了解到我。

1.用三个词语形容这一年的自己?

复杂,平淡,躺平

2.这一年让你记忆深刻的事情是?

说实话,每件事情都让我记忆深刻,毕竟每件事都值得留念。如果非要给这些事件拉一个年度榜单,那第一名大概我会选择女儿一周岁吧。不是每朵浪花都为海滩而来,不是每颗星星都为夜幕而来,但当你看到她时,真的会觉得她为你开心幸福而来!

3.这一年最大的收获是什么?

一年来的收获是在每篇文章中,我收到了很多来自不同平台朋友们非常有价值的回复,这些回复让我有了结交了很多朋友也认识到了自己的价值。

4.如果让你重来一次2022会做什么事情?

更加仔细的计划自己的生活

5.选一首代表你今年的主题曲?

{music id="1980813705" color="#ff0000" /}

作为一个普通人,除了守好自己的一亩三分地外,其他能做的并不多。能够在2022年健康的过完一年,并且能有妻女的陪伴,足够了。

6.这一年让你快乐的事情是?

终于认真的开始做自己最喜欢的事情

7.这一年完成了哪些目标?

搭建了自己的圈子 {x}
专业技能的提升 {x}
健康的过完一年 {x}

8.对明年制定哪些目标?

继续提升专业技能
获得更好的工作机会或环境
维持更新频率

9.对明年的自己说些什么?

你对世界所付出的善意,终究会开花结果。

写在最后

最后汇总一下今年的数据
网站
公众号
张大妈
bilibili

郭导,球三的剧本我已经为你写好了,什么时候来投资?

封面

前言

在chatGPT技术日益发展的今天,它已经能为我们做很多我们普通人无法做到或者需要一定学习后才能做到的事情,例如现在实用最为广泛的一些领域: 绘画、写文章、PPT的制作以及代码检查与延写 等等。
就在上周我也通过了bingAI的审核,获得了bingAI搜索的功能。同时我也在想,我能不能用AI帮我完成一些我想不敢想的事情呢?例如让AI帮郭导写 《流浪地球三》的剧本,这样或许明年的春节档又能看到球三了。

实践

说干就干,我们先尝试问问AI是否知道球二的剧情以及对于球二的评价。

询问剧情

在我第一次询问时,AI连续搜索了三遍, 将剧情这一点进行了细致化的搜索,原本我以为它会给我完整的剧情介绍,结果却显示未找到相关内容?不知道是不是因为一些特殊原因导致无法搜索。而在我二次以同样话术询问时,他给出了一个电影简介,咱们就算它大概能知道球二的剧情吧。接下来我们再问问它对于球二的评价。

询问评价

连续询问了两次,给出了同样的答案,都以自己没有人类情感作为理由。这应该是微软的工程师故意为之的结果,在bingAI刚出那段时间,它是能够回答关于情感的问题的,后续发现会出现一些伦理问题导致语库越来越离谱,微软便关闭了这一类问题。

三种模式

我们知道bingAI是有三种模式选择的,分别为创造力模式,平衡模式以及专业模式,三种模式对应了三种不同的回答态度以及专业性。而我需要让它帮我们续写故事,那么我接下来会尝试用创造新来提问。

第一段

第二段

可以看到AI续写的故事完整性很强,但我怎么觉得这么熟悉呢?不过突如其来的“外星人”让我感觉我是不是串戏到《三体》了。最后由于bingAI的单篇字数限制,所以后续没有完整展示,我们让它继续续写。

第三段

最后这一波情感的渲染让我觉得有点“球一”和“球二”的味道了,不过可能是由于文字形式的问题,我并不能感受到这样的剧情有多好。我们继续续写看看它会给我们一个怎样的结局。

第四段

爱情线也有了,离谱的是居然是和另外星球的???而最后的结局又卡在一个尴尬的地方,连AI都已经猜到我会说“你的故事有点拖沓了”。

第五段

第六段

不知道是我表达有问题还是什么,它这个所谓的“结局”我怎么感觉比正式剧情都长。大概剧情就是这样了,后续我们也不需要再看了。
事实证明AI的确能在原有故事的基础上再进行续写以及延申,但是电影这东西,只有文字描述那就不叫电影了,在AI的续写下我并没有觉得这个剧情有多好,同样我也没有觉得有多差。那么既然能续写故事,我们能不能给它加一点挑战呢?试试看?

狂飙地球

狂飙地球结局

好家伙,我直呼好家伙,“狂飙地球”这个项目我熊猫投了。太好哭了,刘飙和艾拉太感动了 😭 😭 😭

最后说两句

通过今天的测试我发现AI的创造力一定程度上已经超越了现在很多年轻人的想象力了,先不说AI的故事是否合理,但冲着它这份我没有的想象力,如果“狂飙地球”上映,我会给他打个比《逐梦演艺圈》高的分数。
那么以上便是本期的全部内容,如果你也对AI续写故事感兴趣,可以关注我,我大概率还会出一期,或者你可以自己去尝试哦。最后记得点赞收藏关注。

硬件不够,云端来凑!免费搭建云端AI绘画,还不来撸?

怕错过熊猫的精彩分享?那就赶快关注下熊猫吧!

前言

2023年中了,我相信依然很多人还和我一样没玩过AI绘画,毕竟AI绘画的硬件要求太高了,硬件不足一次绘图等个几小时都是可能的。而前几天偶然间熊猫发现了一个神奇的网站kaggle,一个良心的云平台,搭建也非常简单,每周30小时免费时长足够玩了,速度也还行。

部署(需要特殊环境)

首先我们需要注册平台账号,地址为
https://www.kaggle.com/code/xinsiac/zh-stable-diffusion-webui-kaggle。 点击右上角进行账号注册。这里可以选择谷歌快速注册,也可以选择其他邮箱,建议大家选择谷歌。

账号注册

注册成功后回到最初的项目页面,我们点击右上角的Edit My Copy。

Edit My Copy

随后在这里我们需要验证手机号,国内号是可以用的。

手机号验证

验证成功会弹出这样的界面。

验证成功

验证完手机号之后我们还需要做一些设置,首先把INTERNET给勾选上。

设置

随后进行显卡选择,这里推荐GPU T4 x2。

显卡选择

最后我们点击运行项目就可以了。

运行项目

如果没有问题的话,在下面的运行结果中显示应该是这样的。(这一步需要等待蛮久的)

运行结果

体验

结束之后我们点击生成的网页就可以访问AI绘画界面了。通过输入各种提示词以及调整采样,我们就可以获得属于自己的专属AI绘画。

成果

写在最后

搭建还是很简单的,但我发现想生成一副自己心仪的图,还是需要很多次调教以及完善各种提示词。最后大家使用结束了别忘记"关机",关机后,就不计算使用时长啦,每周30小时免费,虽说时间不长,但娱乐娱乐还是基本够了。

关机

以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
点赞收藏关注

拉取镜像太慢?下载进度条卡死?这个方法让你镜像下载成倍上升

前言

你是否遇到过这样的情况,想拉取容器镜像,但是速度太慢了,特别是遇到很大的容器,下载往往要等待很久,甚至会出现进度条停止下载卡死的情况。这都是docker hub目前被X导致的,速度提不起来,下载进度卡死等等情况最近粉丝反馈太多了,所以今天给大家介绍一下如何提升容器镜像下载速度,同时该方法适配所有可设置自定义源的NAS或拥有root权限的NAS。

docker hub现状

方法使用介绍

既然官网网址被X了,那么有没有办法绕过这一道山呢?自然是有的。大家都知道通过代理我们可以访问大江南北,docker hub也一样。但在NAS上挂一个代理服务麻烦不说,还经常容易断开或者依然速度缓慢。

代理服务器

所以熊猫建议还是借助第三方来实现,这里就要祭出镜像加速网:https://dockerproxy.com/了。

dockerproxy

dockerproxy是一个可以通过输入命令来获得加速拉取命令的网站,你只需要将docker pull的项目输入进去,它自动会返回加速后的命令,输入到SSH中便可以发现,速度居然神奇的提升了,且不会出现镜像卡死不下载的情况了。

使用方法

当然了,可能你还会说:那我要是用docker cli和docker-compose.yml怎么办呢?自然也是有办法的。根据官方的使用文档,你可以通过在合适的位置插入他们的命令来实现加速效果,和上述的效果一模一样的。

其他方法

这时候又有小可爱会问了:那我没有root权限怎么办?只能通过NAS自带的图形界面拉取镜像啊!这自然也是有招的,目前主流NAS品牌都支持自定义,实测可以通过自定义地址来实现加速效果。

绿联

例如威联通,在这个界面我们选择添加存储库,然后输入加速地址的域名,随后命名随意,在保存就可以了。当然了,你需要注意的是在拉取镜像时注意选择的存储库,如果还是用的docker hub那么将无法体验到加速效果。

添加存储库

选择存储库

而群晖的设置是在注册表中,需要注意的一点是该加速服务不支持搜索,仅仅可以作为下载使用,所以在使用改地址后我们只能通过导入的形式来拉取镜像。

群晖

其他品牌NAS也是一样的,找到这个存储库地址添加即可,但目前熊猫只测试了威联通和群晖,其他暂没有测试,大家可以尝试一下,理论来说是完全没问题的。

总结

容器的拉取往往是最废时间的,而在这样的网络环境下,想要拉取大体积的容器更难了,所以善用一些其他方法很必要。

以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
点赞收藏关注

使用 React Native Screens 构建一个 Simple Navigation

该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/posts/tech/build-simple-navigation-with-react-native-screens

上回说到,我们已经大概了解了 React Native Screen 内部是如何工作的。这篇文章将综合前面的内容,实现一个简单的 React Native Navigation。

构想

一个 Navigation 最基础的就是要实现一个 navigate 方法。

navigate 方法需要实现前进后退的基本行为。

模拟在 iOS Native 中,我们可以使用 pushController 和 presentController 两个方法去实现前进的行为。

那么我们可以命名为:

  • pushControllerView 推入 Stack Navigation
  • presentControllerView 推入 Modal

然后是后退的行为,命名为:

  • back 回退 Stack Navigation
  • dismiss 关闭 Modal

然后我们需要集中式管理 push 和 present 的 navigation 的数据,然后在 UI 中呈现和反馈。

实现

Navigation 框架

顺着上面的构想,我们首先需要一个 Navigation 的类。

class Navigation {}

我们需要把 navigation 的数据保存在这个类中,所以我还需要定义数据的类型。

export interface Route {
  id: string

  Component?: NavigationControllerView<any>
  element?: React.ReactElement

  type: NavigationControllerViewType
  props?: unknown
  screenOptions?: NavigationControllerViewExtraProps
}

export type NavigationControllerViewExtraProps = {
  /**
   * Unique identifier for the view.
   */
  id?: string

  /**
   * Title for the view.
   */
  title?: string

  /**
   * Whether the view is transparent.
   */
  transparent?: boolean
} & Pick<
  ScreenProps,
  | 'sheetAllowedDetents'
  | 'sheetCornerRadius'
  | 'sheetExpandsWhenScrolledToEdge'
  | 'sheetElevation'
  | 'sheetGrabberVisible'
  | 'sheetInitialDetentIndex'
  | 'sheetLargestUndimmedDetentIndex'
>

export type NavigationControllerView<P = {}> = FC<P> &
  NavigationControllerViewExtraProps

上面我们定义 NavigationControllerView 的类型,和 Route 的类型。NavigationControllerView 用于定义 NavigationView 的组件类型,Route 用于在 Navigation 类中保存 navigation 的数据。

为了实现在 UI 中的响应式,我们使用 Jotai 去管理这个数据。

export type ChainNavigationContextType = {
  routesAtom: PrimitiveAtom<Route[]>
}

在 Navigation 类中初始化数据:

export class Navigation {
  private ctxValue: ChainNavigationContextType
  constructor(ctxValue: ChainNavigationContextType) {
    this.ctxValue = ctxValue
  }

  static readonly rootNavigation: Navigation = new Navigation({
    routesAtom: atom<Route[]>([]),
  })
}

Navigation 数据管理

上面已经定义了 Navigation 的类型,然后我们通过对数据的控制来实现 push/back 的操作。

class Navigation {
  private viewIdCounter = 0
  private __push(route: Route) {
    const routes = jotaiStore.get(this.ctxValue.routesAtom)
    const hasRoute = routes.some((r) => r.id === route.id)
    if (hasRoute && routes.at(-1)?.id === route.id) {
      console.warn(`Top of stack is already ${route.id}`)
      return
    } else if (hasRoute) {
      route.id = `${route.id}-${this.viewIdCounter++}`
    }
    jotaiStore.set(this.ctxValue.routesAtom, [...routes, route])
  }

  private resolveScreenOptions<T>(
    view: NavigationControllerView<T>,
  ): Required<NavigationControllerViewExtraProps> {
    return {
      transparent: view.transparent ?? false,
      id: view.id ?? view.name ?? `view-${this.viewIdCounter++}`,
      title: view.title ?? '',
      // Form Sheet
      sheetAllowedDetents: view.sheetAllowedDetents ?? 'fitToContents',
      sheetCornerRadius: view.sheetCornerRadius ?? 16,
      sheetExpandsWhenScrolledToEdge:
        view.sheetExpandsWhenScrolledToEdge ?? true,
      sheetElevation: view.sheetElevation ?? 24,
      sheetGrabberVisible: view.sheetGrabberVisible ?? true,
      sheetInitialDetentIndex: view.sheetInitialDetentIndex ?? 0,
      sheetLargestUndimmedDetentIndex:
        view.sheetLargestUndimmedDetentIndex ?? 'medium',
    }
  }

  pushControllerView<T>(view: NavigationControllerView<T>, props?: T) {
    const screenOptions = this.resolveScreenOptions(view)
    this.__push({
      id: screenOptions.id,
      type: 'push',
      Component: view,
      props,
      screenOptions,
    })
  }

  presentControllerView<T>(
    view: NavigationControllerView<T>,
    props?: T,
    type: Exclude<NavigationControllerViewType, 'push'> = 'modal',
  ) {
    const screenOptions = this.resolveScreenOptions(view)
    this.__push({
      id: screenOptions.id,
      type,
      Component: view,
      props,
      screenOptions,
    })
  }
}

之后,back 的操作也非常简单。

class Navigation {
  private __pop() {
    const routes = jotaiStore.get(this.ctxValue.routesAtom)
    const lastRoute = routes.at(-1)
    if (!lastRoute) {
      return
    }
    jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, -1))
  }

  /**
   * Dismiss the current modal.
   */
  dismiss() {
    const routes = jotaiStore.get(this.ctxValue.routesAtom)
    const lastModalIndex = routes.findLastIndex((r) => r.type !== 'push')
    if (lastModalIndex === -1) {
      return
    }
    jotaiStore.set(this.ctxValue.routesAtom, routes.slice(0, lastModalIndex))
  }

  back() {
    return this.__pop()
  }
}

从上面的代码不难看出,其实我们只是通过对数据的操作实现 Navigation 的逻辑。而真正要在 UI 中呈现 Navigation 的效果还是需要通过 React Native Screens 来实现。

Navigation UI 框架

在上面的文章中,我们已经知道了我们只需要通过传入不同 React Children 到 React Native Screens 的 <ScreenStack /> 中就能实现原生的 navigate 的效果。

那我们现在只需要透过 Navigation 类中管理的数据,通过一些转换就能实现了。

首先我们在 React 中定义一个 Navigation 上下文对象,确保得到正确的 Navigation 实例(如有多个)。

export const NavigationInstanceContext = createContext<Navigation>(null!)

然后,编写一个 RootStackNavigation 组件。

import { SafeAreaProvider } from 'react-native-safe-area-context'
import type { ScreenStackHeaderConfigProps } from 'react-native-screens'
import { ScreenStack } from 'react-native-screens'

interface RootStackNavigationProps {
  children: React.ReactNode

  headerConfig?: ScreenStackHeaderConfigProps
}

export const RootStackNavigation = ({
  children,
  headerConfig,
}: RootStackNavigationProps) => {
  return (
    <SafeAreaProvider>
      <NavigationInstanceContext value={Navigation.rootNavigation}>
        <ScreenStack style={StyleSheet.absoluteFill}>
          <ScreenStackItem headerConfig={headerConfig} screenId="root">
            {children}
          </ScreenStackItem>
        </ScreenStack>
      </NavigationInstanceContext>
    </SafeAreaProvider>
  )
}

在 App 的入口文件中,我们使用 RootStackNavigation 组件包裹整个应用。

export default function App() {
  return (
    <RootStackNavigation>
       <HomeScreen>
    </RootStackNavigation>
  )
}

const HomeScreen = () => {
  return (
    <View>
      <Text>Home</Text>
    </View>
  )
}

RootStackNavigation 组件的 Children 为首屏,也是 Navigation 的根组件,不参与整体的 navigate 行为,即不能被 pop。

Navigation 数据在 UI 中呈现

接下来我们需要把这些数据转换到 React 元素传入到 React Native Screens 的 <ScreenStackItem /> 中。

const ScreenItemsMapper = () => {
  const chainCtxValue = use(ChainNavigationContext)
  const routes = useAtomValue(chainCtxValue.routesAtom)

  const routeGroups = useMemo(() => {
    const groups: Route[][] = []
    let currentGroup: Route[] = []

    routes.forEach((route, index) => {
      // Start a new group if this is the first route or if it's a modal (non-push)
      if (index === 0 || route.type !== 'push') {
        // Save the previous group if it's not empty
        if (currentGroup.length > 0) {
          groups.push(currentGroup)
        }
        // Start a new group with this route
        currentGroup = [route]
      } else {
        // Add to the current group if it's a push route
        currentGroup.push(route)
      }
    })

    // Add the last group if it's not empty
    if (currentGroup.length > 0) {
      groups.push(currentGroup)
    }

    return groups
  }, [routes])

  return (
    <GroupedNavigationRouteContext value={routeGroups}>
      {routeGroups.map((group) => {
        const isPushGroup = group.at(0)?.type === 'push'
        if (!isPushGroup) {
          return <ModalScreenStackItems key={group.at(0)?.id} routes={group} />
        }
        return <MapScreenStackItems key={group.at(0)?.id} routes={group} />
      })}
    </GroupedNavigationRouteContext>
  )
}

const MapScreenStackItems: FC<{
  routes: Route[]
}> = memo(({ routes }) => {
  return routes.map((route) => {
    return (
      <ScreenStackItem
        stackPresentation={'push'}
        key={route.id}
        screenId={route.id}
        screenOptions={route.screenOptions}
      >
        <ResolveView
          comp={route.Component}
          element={route.element}
          props={route.props}
        />
      </ScreenStackItem>
    )
  })
})

const ModalScreenStackItems: FC<{
  routes: Route[]
}> = memo(({ routes }) => {
  const rootModalRoute = routes.at(0)
  const modalScreenOptionsCtxValue = useMemo<
    PrimitiveAtom<ScreenOptionsContextType>
  >(() => atom({}), [])

  const modalScreenOptions = useAtomValue(modalScreenOptionsCtxValue)

  if (!rootModalRoute) {
    return null
  }
  const isFormSheet = rootModalRoute.type === 'formSheet'
  const isStackModal = !isFormSheet

  // Modal screens are always full screen on Android
  const isFullScreen =
    isAndroid ||
    (rootModalRoute.type !== 'modal' && rootModalRoute.type !== 'formSheet')

  if (isStackModal) {
    return (
      <ModalScreenItemOptionsContext value={modalScreenOptionsCtxValue}>
        <WrappedScreenItem
          stackPresentation={rootModalRoute?.type}
          key={rootModalRoute.id}
          screenId={rootModalRoute.id}
          screenOptions={rootModalRoute.screenOptions}
          {...modalScreenOptions}
        >
          <ModalSafeAreaInsetsContext hasTopInset={isFullScreen}>
            <ScreenStack style={StyleSheet.absoluteFill}>
              <WrappedScreenItem
                screenId={rootModalRoute.id}
                screenOptions={rootModalRoute.screenOptions}
              >
                <ResolveView
                  comp={rootModalRoute.Component}
                  element={rootModalRoute.element}
                  props={rootModalRoute.props}
                />
              </WrappedScreenItem>
              {routes.slice(1).map((route) => {
                return (
                  <WrappedScreenItem
                    stackPresentation={'push'}
                    key={route.id}
                    screenId={route.id}
                    screenOptions={route.screenOptions}
                  >
                    <ResolveView
                      comp={route.Component}
                      element={route.element}
                      props={route.props}
                    />
                  </WrappedScreenItem>
                )
              })}
            </ScreenStack>
          </ModalSafeAreaInsetsContext>
        </WrappedScreenItem>
      </ModalScreenItemOptionsContext>
    )
  }

  return routes.map((route) => {
    return (
      <ModalScreenItemOptionsContext
        value={modalScreenOptionsCtxValue}
        key={route.id}
      >
        <ModalSafeAreaInsetsContext hasTopInset={!isFormSheet}>
          <WrappedScreenItem
            screenId={route.id}
            stackPresentation={route.type}
            screenOptions={route.screenOptions}
          >
            <ResolveView
              comp={route.Component}
              element={route.element}
              props={route.props}
            />
          </WrappedScreenItem>
        </ModalSafeAreaInsetsContext>
      </ModalScreenItemOptionsContext>
    )
  })
})

const ResolveView: FC<{
  comp?: NavigationControllerView<any>
  element?: React.ReactElement
  props?: unknown
}> = ({ comp: Component, element, props }) => {
  if (Component && typeof Component === 'function') {
    return <Component {...(props as any)} />
  }
  if (element) {
    return element
  }
  throw new Error('No component or element provided')
}

const ModalSafeAreaInsetsContext: FC<{
  children: React.ReactNode
  hasTopInset?: boolean
}> = ({ children, hasTopInset = true }) => {
  const rootInsets = useSafeAreaInsets()
  const rootFrame = useSafeAreaFrame()

  return (
    <SafeAreaFrameContext value={rootFrame}>
      <SafeAreaInsetsContext
        value={useMemo(
          () => ({
            ...rootInsets,
            top: hasTopInset ? rootInsets.top : 0,
          }),
          [hasTopInset, rootInsets],
        )}
      >
        {children}
      </SafeAreaInsetsContext>
    </SafeAreaFrameContext>
  )
}

这里需要判断的逻辑可能会有点复杂,需要区分 Stack 和 Modal 的类型,在 ModalStack 中又需要区分 formSheet 等等。同时每个 Modal 中有需要再包裹一层 StackScreen 等等。

从简单来说,就是需要根据 Navigation 的数据,生成对应的 <ScreenStackItem />,然后传入到 <ScreenStack /> 中。

这里的详细的代码均可在下面的链接中查看:

https://github.com/RSSNext/Follow/blob/efc2e9713bcd54f82f9377de35ef5532008d6004/apps/mobile/src/lib/navigation/StackNavigation.tsx

然后我们还需要处理 native navigation 的状态同步,主要在 native 触发 pop 和 dismiss 的时机发送的事件。在前面的文章中讲过,可以通过 ScreenStackItemonDismissed 监听。

这里我们直接对 ScreenStackItem 再次封装。

export const WrappedScreenItem: FC<
  {
    screenId: string
    children: React.ReactNode
    stackPresentation?: StackPresentationTypes

    screenOptions?: NavigationControllerViewExtraProps
    style?: StyleProp<ViewStyle>
  } & ScreenOptionsContextType
> = memo(
  ({
    screenId,
    children,
    stackPresentation,

    screenOptions: screenOptionsProp,
    style,
    ...rest
  }) => {
    const navigation = useNavigation()

    const screenOptionsCtxValue = useMemo<
      PrimitiveAtom<ScreenOptionsContextType>
    >(() => atom({}), [])

    const screenOptionsFromCtx = useAtomValue(screenOptionsCtxValue)

    // Priority: Ctx > Define on Component

    const mergedScreenOptions = useMemo(
      () => ({
        ...screenOptionsProp,
        ...resolveScreenOptions(screenOptionsFromCtx),
      }),
      [screenOptionsFromCtx, screenOptionsProp],
    )

    const handleDismiss = useCallback(
      (
        e: NativeSyntheticEvent<{
          dismissCount: number
        }>,
      ) => {
        if (e.nativeEvent.dismissCount > 0) {
          for (let i = 0; i < e.nativeEvent.dismissCount; i++) {
            navigation.__internal_dismiss(screenId)
          }
        }
      },
      [navigation, screenId],
    )

    const ref = useRef<View>(null)

    return (
      <ScreenItemContext value={ctxValue}>
        <ScreenOptionsContext value={screenOptionsCtxValue}>
          <ScreenStackItem
            key={screenId}
            screenId={screenId}
            ref={ref}
            stackPresentation={stackPresentation}
            style={[StyleSheet.absoluteFill, style]}
            {...rest}
            {...mergedScreenOptions}
            onDismissed={handleDismiss}
            onNativeDismissCancelled={handleDismiss}
          >
            {children}
          </ScreenStackItem>
        </ScreenOptionsContext>
      </ScreenItemContext>
    )
  },
)

定义 NavigationControllerView

export const PlayerScreen: NavigationControllerView = () => {
  return <SheetScreen onClose={() => navigation.dismiss()}></SheetScreen>
}

PlayerScreen.transparent = true

使用 Navigation

那么现在我们就可以在 React 中使用 Navigation 了。

const navigation = useNavigation()

navigation.pushControllerView(PlayerScreen)

那么,一个简单的 Navigation 就完成了。

当然如果你有兴趣的话,也可以查看 Folo 这部分的完整实现,包括如何和 Bottom Tab 结合和页面 ScrollView 的联动。

https://github.com/RSSNext/Follow/blob/6694a346a0bd9f2cea19c71e87484acc56ed3705/apps/mobile/src/lib/navigation

看完了?说点什么呢

狂热的信仰,沉默的上帝

过去写了这么多宗教的“好话”,这次也该写写一些批评的话了。毕竟,爱的其中一个要素是:

【哥林多前书 13:6】不喜欢不义,只喜欢真理;

如果一个人告诉你,他每天都在和上帝说话,你可能会觉得他信仰虔诚;但如果他说上帝每天都回他话呢?那他或许需要一点医疗协助1。然而,宗教狂热者的问题有时远远超过精神疾病患者的问题,因为前者不自知,后者至少知道自己有心理问题,会去治疗。

我越来越意识到,那些打着“爱”的名号,却在人间布道“禁”的人,其实根本不爱这个世界。他们不过是在制造一个镜像:在那个镜像中,所有人都得和他们一样惧怕、一样闭眼、一样跪下。否则就要下地狱。

于是,他们用“爱”之名,把爱定义成“你必须按照我理解的方式存在”;用“自由”之口,把自由翻译成“你可以不信,但你不能说出来”;用“上帝”之威,干了不少一般人不会干的事——侵略他人灵魂、裁定道德高地、涂改节日的本义,最后还要你说“感谢主”。

看看,这就是一些人的“虔诚”?

有一年清明节,我看到朋友圈里一位自称“基督徒”的人发了一个动态,写着:“我们不要拜魔鬼。”理由是清明节是“鬼节”,而基督徒只信“复活与永生”。我没说什么,只是默默点开他之前发的“妇女节”那条状态,赫然写着:“这是女权鼓吹的日子,是邪恶的节日。上帝创造女人,是让她们顺服男人。” 并引用经文:

【以弗所书 5:22】你们作妻子的,当顺服自己的丈夫,如同顺服主。

上帝真的只让女人顺服男人吗?为什么不提经文后面写的丈夫需要爱妻子呢?明明是双方互相的关系,却被解读为一种单向的服从。或者,只是觉得别人需要顺服自己,而别人不可以质疑自己。

【以弗所书 5:28】丈夫也当照样爱妻子,如同爱自己的身子,爱妻子便是爱自己了。

很明显,婚内关系是一种“相互”的行为,是一种 “彼此顺服、彼此相爱”的表现。正如《彼得前书》所说:

【彼得前书 5:5】你们年幼的,也要顺服年长的。就是你们众人也都要以谦卑束腰,彼此顺服。

顺服从来都不是一种单向的行为,而是双方互相建立在“爱”的基础上产生的。
然而,《以弗所书》这两段经文强调的也仅仅是婚内关系的“妻子”与“丈夫”角色,而不是“男人”和“女人”。在婚姻之外,根据《加拉太书》所说,不分人种、不分地位、不分性别等等,实际上也是平等的:

【加拉太书 3:28】并不分犹太人、希腊人、自主的、为奴的,或男或女,因为你们在基督耶稣里都成为一了。

这种人,有一个共通的特征:永远站在圣经背后,永远躲在十字架下。他们不以爱作为判断尺度,而是试图片面摘抄经文来压迫他人,如同那法利赛人2。凡事不顺心——那是魔鬼作祟;别人不听话——那是信仰不纯;社会多样性增强——那是撒旦的伎俩。仿佛信仰不是为了理解世界,而是为了对抗世界。

他们传教,不是为了“福音”,而是为了“同化”;他们宣讲爱,却没有耐心听别人说完一句话;他们嘴里说的是“福音传万邦”,心里想的却是“地狱多塞点人”。

这种“狂热”,是一种特殊形式的权力欲望。不是用武力,而是用经文;不是监狱,而是良心。
他们只需要你在深夜时分,对自己的存在感到羞耻,然后说:“主啊,我错了。”

错在哪?错在你爱了不该爱的人?错在为女性争取了一点点话语权?错在愿意给死去的人扫墓?这些都不是罪。真正的罪,是他们把信仰变成一种道德投影仪,把人性的复杂简化成“该”与“不该”,然后强迫所有人进入他们自编自导的剧本里当群众演员。

更有趣的是,这种剧本往往一成不变。他们最怕的,不是“撒旦”,而是人类自己开始思考。他们最忌讳的,不是“异教”,而是你问一句:“为什么?”

为什么妇女节不能庆祝平等?为什么清明节成了魔鬼节?为什么口中的“神爱世人”,永远只是“神爱他们自己觉得对的人”?他们回答不了,因为这不是信仰,而是恐惧;这不是灵魂的归宿,而是控制欲的遮羞布。

要我说,所谓的“宗教狂热者”,本质上是一种偷懒的存在方式。他们不愿意思考复杂问题,于是索性相信所有复杂问题都有一个“属灵的”答案;他们不想面对自己生活的混乱,就去指责别人的生活“不洁净”;他们不敢直面死亡的空虚,于是把所有形式的纪念都打上“异教”的标签。

宗教不是问题,人才是。信仰也不是问题,是那些拿信仰当皮鞭的人,把它变成了问题。上帝沉默,不代表人类要失语;经文不变,也不代表解读不能有爱。

毕竟,信仰如果不能让人更自由,不能让世界更美好,那它根本不值得去信3

注释


  1. 我并非否定虔诚的人,但即使在《圣经》中,那些直接聆听神话语的先知们,神也并非天天与他们对话。若有人声称每天都能听到神的声音,这种现象有时可能与精神健康问题相关,比如幻听或精神分裂症。在神学体系中,也会特别区分“神的声音”与“魔鬼的话语”,需通过祷告、沉思和教义的指引来验证这种体验的真实性。
  2. 法利赛人的问题在于他们过于注重遵守律法的细节,却忽视了爱人的重要性。他们片面地解释和执行律法,只遵循那些符合自己观点的部分,而缺乏宽容、同情和爱心。
  3. 主流宗教信仰大多建立在善良、助人为乐等价值观之上,帮助人们面对生活中的痛苦,并推动世界变得更加美好。在基督教中,爱是核心的教义之一,如果信仰脱离了“爱”的本质,那么它的根基便值得怀疑。

局域网互传神器:LocalSend

场景

当在同一局域网下,各种有线、无线、电脑、手机、平板设备之间有文件需要传输时,常用的微信 QQ甚至是数据线都是一个不错的临时方案,但在线传输经常会受到网速、压缩、文件大小的限制。或许同一生态的设备可以“隔空投送”,但不同品牌、不同设备的“生殖隔离”还是不能让我们愉快地进行文件传输。
LocalSend 这一款免费、开源、跨平台、多语言、轻量、简洁的局域网传输神器则打破了这一壁垒。
LocalSend 官网:https://localsend.org/

食用

下载对应平台的软件安装包并安装,打开设置,滑到最底下勾选启用高级选项。
以下是我推荐设置的选项,按需决定,其它选项看情况设置,注意每个平台都要单独设置。

  • 自动保存:打开后其它设备发送文件到此设备可直接进行保存,不需要手动确认是否接收,便捷+1
  • 保存目录:设置一个方便查找的目录,比如我是设置 D:\LocalSend,便捷+1
  • 自动完成:打开后当文件传输完毕,自动确定完成返回主页面,方便下一次传输,便捷+1
  • 通过连接自动接收:链接分享一般比较少用,但打开后说不定可以用上,便捷+1
  • 别名:设置当前设备的名称,再选一个合适的设备图标,方便在其它设备传输时查找,便捷+1
  • 加密:如果没有特殊需求关掉为好,能减少处理器开销,速度+200%
  • 关闭时最小化到系统托盘:防止误关,使其在后台,便捷+1
  • 开机自启:电脑开机后就启动,不用传输时手动打开,便捷+1
  • 启动时最小化:静默启动,不弹出窗口干扰,在后台也能传输,便捷+1
  • 添加“发送到...”:Windows 选中文件右键“发送到”选项可选择使用 LocalSend,便捷+1

实践

桌面端为有线 10Gbps 接入路由器,移动端为 MLO WiFi7 2882Mbps,传输文件为两个系统镜像文件。
电脑和手机分别两次相互传输文件,最高可达 200MB/s,稳定 180MB/s。即使是两台均为无线连接的设备,也能达到 100MB/s。这个速度可比在线传输快,也比用数据线方便许多。

[photos]
系统分享,https://pampo.cn/usr/uploads/2025/05/1322576393.webp|
移动端,https://pampo.cn/usr/uploads/2025/05/4152609953.webp|
桌面端,https://pampo.cn/usr/uploads/2025/05/2948531938.webp|
[/photos]

总结

我不敢说这是最好的局域网互传软件,但绝对是最值得去一试的软件。刚开始用可能不太喜欢,还是会肌肉记忆性地去打开微信 QQ 去传文件,但用习惯后根本就离不开,真后悔没早认识这个软件😥

【日记】2025.05.08

1.考试网站

我们的轮机自动化是机考,是网页上考的(172.17.64.166),老师很早的时候就和我们说了IP地址和密码,但是他当时说的密码是123456,我们试了试提示密码错误。但是呢,上次我们考试的时候,记得这个密码就是一个弱密码,于是就开始尝试各种弱密码,比如说000000、888888、学号、身份证后六位什么的。结果试了半天都不行,弄得我都不自信了。

后来老师问了问,说密码实际上是12345,是他记错了。怎么说呢,我考虑了很多的可能性,但是没考虑到密码可能是5位。(真的不记得了)只能说是弱密码中的“强密码”了。

等登录到网页的后台之后,我发现我的名字是错的,原本应该是“博”,但是却写成了“缚”,弄得我也很懵逼啊。让我想起来之前有一个老师,他叫我名字的时候,也有一定的概率叫成fù。我现在怀疑这个名单就是他导入的(不是)。

在写日记的时候,我发现我在寝室无法访问这个网站,会报超时。然而这个是内网,正常情况下是不会有这样的情况的。我试了试手机,没想到手机的访问是正常的?但是电脑和平板就是不行。

然后我拿出了 Ping 大法,发现手机、电脑和平板都 Ping 不通。旁路由也 Ping 不通,但是主路由是可以的。所以问题很明显了,是旁路由干的。

我就只能在那里问 AI ,查找了半天,发现是因为旁路由上的 Docker 默认是 172.17.0.0/16 的网段,然后我访问 172.17.64.166 的请求被转发到 Docker 里了。可是 Docker 中没这个 IP 地址的服务,然后就无法访问了。(为什么手机能访问,我也不知道)

我原本打算的是修改 Docker 的默认网段的,但是改了半天都不生效,不知道是哪里的问题。于是我就直接配置一个路由,当访问 172.17.64.166 直接转发到主路由。唯一的问题估计就是要是下次还有这样的事情,就要手动的再添加一条规则了。

2.Uptime Kuma

今天 Duckxu 给我发了一张 sleepy 的截图,说上面的今日被围观次数有亿点高(1391),感觉这个爬虫有点过分。然后我就去服务器后台看了看,看到了一个熟悉的 UA ——“Uptime - Kuma”。很好,不是爬虫,是我自己的新服务。

我一开始还在想能不能屏蔽掉特定 IP 的记录,然后发现我的主站(xingmail.cn)的侧边栏也受到这个的影响了,想了想,还是把 Uptime Kuma 给下了吧,毕竟这样会影响挺多网站的访客计数的。

3.“浙水股份杯”第23届浙江省大学生结构设计竞赛暨全国大学生结构设计竞赛浙江省分区赛

浙海大最近承办了一个新比赛,学校里到处都是横幅和宣传的内容,甚至比之前的樱花节还要多。以及,浙江科技大学的校徽在这么多学校里真的是显得格格不入

横幅
宣传板
宣传板

4.信不信我抽你?

不得不说,清风的纸巾的其中一个系列还是挺有意思的,就感觉很年轻化。

十分有意思的纸巾

5.积水

有时候还是挺无语的,这里的地面是学校刚刚修好的(2025.03.01才开始拆原本的地板),结果这个新的水泥地还不是平的(土木学长怎么不发力啊),已经到处都是水坑了,还是挺无语的。

新修的平面,就开始积水了

我不喜欢学校里的下雨天有一个原因就是走路的时候要十分注意,不然一不小心就踩到一个比较深的水坑里了。

无题五一

AI生成用的越多,想写写画画表达的欲望就越小。

就好比手机存储越来越大,可用空间却越来越小。

感觉手机越来越慢不是一天两天了,存储空间占用90%以上,眼看就要亮红。想着要不要换部手机,扭头又看了看自己的钱包。

呸。我不配。

还是再挤一挤吧,毕竟存储空间像乳沟,挤一挤总还是有的。

空间的大头依然是微信这个绿茶,1个家用1个分身(工作用)还有一个企业微信。它一小家子都是160多G了。淦。

也不知道什么资料有用,什么资料没用。

看到有一个聊天记录迁移与备份功能。

机械硬盘可比手机便宜多了,买了块4T硬盘挂上家里的台式机。

用了3个小时,备份加上迁移。

然后手机上点清理。

终于!世界舒畅好多。

孔雀乡

流量也不够了。

曾经以为两点一线的生活,WIFI环绕下,永远也用不完这流量套餐。

五一出门,也就随便看着刷刷,余量就直线地减少。TMD,跑惯了信息高速,名义上的无限流量在达量限速之后,蜗牛一样的网速真是叔可忍婶不能忍。

移动这个奸商,老用户不如狗。

幸好节前倒数第二天整了张广电卡备用。19元100G(100分钟)。

打开热点。。。。

终于!全家都舒畅好多。

TIPS:体验了整个五一节,跨川渝两地,有市区、小镇、乡村环境。不论是地铁还是高速,广电卡5G都比较流畅。唯一遗憾的是地下室(地下车库),没有信号(纯盲区,连电话信号都没有的那种。)

广电

现在过节也难过

特别是重庆这种网红城市,网红景点又基本在市区里的,对本地市民完全是灾难。

除了夏天那几天高温,已经没有淡旺季之分了。不是堵车就是堵人,除了把地方腾给游客之外,只能在窝在家里吃吃喝喝刷短剧。

短剧这玩艺真是时间与视力的双重杀手,特别是小作坊出品,下的料又足又猛。上头。

连看几部之后。。。

终于!我是舒畅好多。

后遗症就是:要不是打过五针,真是抗不住某些脑残剧情。

短剧

拔智齿

我平时吃太冰的东西右边牙会酸痛,另外感冒发热也可能连带牙痛,但阵痛很快会消失,我一直没放在心上。但这个五一发热同时产生的牙痛没有自然消失,反而愈演愈烈。我想着扛一扛,但是昨晚两点被痛醒一次,强迫自己睡下,又在四点半再次被痛醒。索性不睡了,决定立即去医院。

杭州知名医院的口腔科当天挂号都没名额了,我思考了一下决定直接回富阳。一方面富阳第一人民医院离家只有一站地铁,如果要复诊比较方便;另一方面在家有爸妈可以照顾我。事实证明这个决定无比正确。拔牙后难以吞咽,苦不堪言,幸亏家人在身边,缓解了我的焦虑。

某次体检我得知长了智齿并且已经有蛀牙。我用手指摸索,上牙最里面的那颗碰一下就痛,所以我基本确定是智齿出问题了。而智齿有问题一般是拔掉,我除了小时候再也没处理过牙齿方面的问题,所以本能地有点怕拔牙。于是我开始做功课,查找大量相关资料,越看越心惊。拔智齿比拔一般的牙难度要大,并且根据智齿位置的不同,手术复杂度和费用差异巨大。为了保险我当然希望挂专家号,但是没号了,最近的名额还要好几天,而我是一刻都等不了的。然后我又开始研究微创手术,网上的说法毁誉参半,我决定让医生看过之后,如果能做微创就主动要求。

在排队等待叫号时我坐立难安,脑子里不停地胡思乱想。而到了真正拔牙的环节,比预想的要顺利得多。

接待我的是一名年轻的女医生,她非常专业,不仅手术十分干练,而且不断给我心理疏导。网上说有的医生不拍片直接拔牙,这是我极为担心的一点,我甚至准备主动提拍片检查,而实际证明我的担心完全多余了。这位医生给我做了初步检查就告诉我是智齿烂了,然后就让我去拍片,确认是否能立即拔除。拿到报告后她立即跟我说可以手术,我忐忑地躺到了牙椅上。恐惧的情绪没有持续太久手术就完成了,耗时应该不到十分钟。

手术前打了两针局麻,第一针打在智齿旁边,几乎没有感觉;第二针打在门牙附近,我终于体会到了网上说的痛楚,好在时间不长。麻药很快生效,医生一边熟练地进行手术,一边不停安慰我。在开始前说我的智齿位置好,会非常顺利——所以我都忘了微创这回事。拔的过程中我清晰感觉到牙齿一点点被分离,有骨头撕裂的那种头皮发麻的恐怖感,医生就安慰我打了麻药不会痛的,让我别担心。拔出后医生也第一时间告诉我结果,让我悬着的心立即放下了。然后医生又用轻松的语气告诉我牙齿有粘连,造成了一定创口,帮我缝一下,以后会长平。受她情绪的感染,我没有任何担心——事后照镜子我发现创口还挺恐怖的,所以是当时医生的安慰让我少了精神负担。

最后医生给我展示了拔出的牙齿,我看到已经缺了一大块,而且发黑了。医生说让我确定牙齿真的坏了,而且没有拔错牙,好放心。虽然是开玩笑的语气,但是在当时的不安中,这是最大程度照顾了我的情绪,是非常有意义的。

这次拔智齿非常顺利,我非常感谢这位医生!

图中左上角那颗牙就是今天拔除的智齿。

拔除的智齿

总费用487元

拔牙后注意事项

读《洗澡》《洗澡之后》

今天看完杨绛的《洗澡》和《洗澡之后》,整体感觉很一般,而且对作者的三观也不敢苟同,之前看她写的《我们仨》还没发觉她的思想有多奇怪。

本书将许彦成、姚宓和罗厚视为正面人物来写。罗厚为人热情正直,为了姚宓家的事情尽心尽力,忙前忙后。姚宓是一个性格执拗又清冷的小姐。最不能让人接受的是许彦成这个人物,真是让人匪夷所思,他的老婆杜丽琳家境优渥,相貌出众,从书中也看不出有什么明显缺点错处,作者总是强调她“俗”,但具体也没体现“俗”在哪里?芸芸众生哪个不是俗人呢?然而她偏偏没办法让许彦成动情。既然许彦成不喜欢她,又不拒绝,同意结婚,生下女儿又放养在异地,不管不顾老婆思女之情。在婆媳碰面时,他赶忙躲去别人家里,完全搞不清自己的身份和责任。留学期间许彦成对他老婆提出的关于学业和事业发展的合理化建议,包括在被“洗澡”时的提议全部否决,摆出一条路走到黑的架势。

也搞不懂姚宓吸引许彦成的地方在哪里?让许彦成婚内忍不住向其求婚。整天道貌岸然,在工作和生活的明面,和姚宓保持距离,没有给予什么帮助,背地里又朝思暮想、魂不守舍,精神出轨难道不是出轨?姚宓虽然做出一副正人君子样子,张口闭口不破坏别人婚姻,她又何尝不知道许彦成的心思,还默许和他在偏僻的书房经常密会、书信往来,甚至聊天时亲密趴在男方身上。

更奇葩的是作者为了担心别人写续集,竟然生拉硬扯安排杜丽琳去外省下放,毫无逻辑和一个轻浮的男知青好上了。作者煞费苦心如此安排,就是让女方出轨在前,俩人顺利离婚后,许彦成可以和姚宓结婚,从此幸福生活在四合院中。对于这种结局,作者在文末竟然还不由自鸣得意起来。续集没有巴掌大没有巴掌厚,行距宽字体大,一本小书竟然定价近30元,给人一种狗尾续貂、画蛇添足的感觉,何况《洗澡》也谈不上是“貂”。

本以为《洗澡》会深刻写出知识分子的思想改造,然而此部分篇幅很少,写的也很浅薄。两本书大部分都是很无聊的日常琐事,读起来不仅浪费时间,如购买来看还浪费金钱。

两天一夜象山赶海之旅

五一刚回来有些忙,推迟了好几天,终于可以闲下来写写游记了。

五一出去象山玩了几天,出发前一周已经做好了攻略,包括路线、时间、住宿哦、饮食等个各方面,但计划赶不上变化。最开始预估的最多三个小时就能到达目的地,结果硬是在高速跑了五六个小时,基本 2/3 的时间都在堵,特别是宁波嘉兴段高速,走走停停,不过还好带了小零食,跟对象说说笑笑就过去了,也不会枯燥。

点赞余姚服务区,跑一半小累下去休息一下,超市价格跟杭州差不多,没有额外涨价,短暂休整后继续驾车前行。一个小插曲,中间大概有几十公里的路程,高速播报允许小汽车在应急车道通行,我犹豫了一下然后果断走了应急通道,非常爽很畅通,虽然车道有些略窄,但是走的很爽没有停下来过,看旁边堵的熙熙攘攘,这也是我第一次走应急通道,不错的体验。

越靠近海边环境越好,空气也很舒服,同时也感叹临海城市天气莫测,刚下象山收费站下起了大雨,然后走了一两公里后,又是大晴天,烈日当空,打开窗户吹吹风,小小的享受了一下。

入岛
入岛

第一站打算去山顶看看大风车,路途经过一个小村庄,整洁的街边道路两旁,一栋栋精致的民居让人向往,羡慕浙江本地人了,家家户户都盖着小别墅,门前几乎都自己修建了小花园,可以养养花逗逗鸟。

到半山腰发现一个露营地,稍作休息,顺便放出无人机看看周围的情况,发现风景也就一般,跟对象商量直接去下一个景点,当时已经是下午三点多了。

沿着公路一直前行,路过有“小赛里木”之称的湖泊,其实就是一个人工湖,看到有很多人在露营烧烤,然后中间有一段管控,不让开车进,很多人都把车停在门口,我带着对象下来散散步、拍拍照,湛蓝的天空伴着习习微风,令人心旷神怡。

短暂休息后,我们决定前往沙滩游玩,就继续出发一路边走边玩,有说有笑,最后导航来到白沙湾沙滩,路两边也是停满了车,一下车女朋友就很兴奋,我也换上了短裤和人字拖,沙滩度假标配,瞅了一下,人不多还挺宽敞的,沙子也比较干净,基本都是一家三口带着小孩来玩,我们俩也去海水泡泡脚,不过傍晚那段时间海水挺黄的,也正好快赶上涨潮。

夕阳和沙滩
夕阳和沙滩
海边的风景
海边的风景

简单玩了一会,我们又去把帐篷从车上拉下来,带了不少东西,因为是第一次露营过夜,也是尽量准备周全一点,准备了防潮垫之类的东西,然后带了一个空调被,事实证明这远远不够,靠近海边还是有点冷,温度不高,比正常睡觉偏凉一些。晚上的话就使用自己带的食材美美的吃了一顿,有火锅底料、毛肚、肥牛、金针菇等,刚好吃饭的时候对面还放起了烟花,非常享受。

露营火锅
露营火锅

出去露营一定要收集好自己的垃圾,我专门准备了几个袋子收拾垃圾使用,打包好扔到附近的垃圾桶,之后就是洗漱完躺着享受夜晚,第一次在帐篷过夜,体验很不错。

本来打算第二天下午就回去的,但是早上起来发现空气很好,天空很蓝,海水很清,和傍晚完全不同,就决定多住一夜。早餐就热一下来之前准备的三明治,又是一顿美美的早餐,之后就是常规的拍照打卡环节,早上八九点几乎没什么人,和女朋友漫步在海边,看着照样吹吹清晨的海风,颇有一番滋味。

海边日出
海边日出

还在美团下单了一些小铲子等,挖挖贝壳,堆堆沙子,彷佛回到了童年。累了就躺帐篷里休息,休息好了继续出去玩,除了太阳有点大,其他并无不适,还好带了防晒喷雾,这两天下来也没有晒黑,不过忽略了一件事,身上防晒做好了,但是忽略了脚,因为穿着人字拖,一天下来好像有些晒伤,还好缓了几天就缓过来了,下次一点要注意这点。

堆沙子游戏
堆沙子游戏

不过等到晚上的时候,倒是发生了一些突然状态,没有看天气预报,入夜的时候风越来越大,因为在海边有些担心,就跟对象商量了一下放弃过夜的想法,收拾了一下行李装车离开,和来时完全不同,路上几乎没有一辆车,打开窗户慢慢开,注意到了之前没有注意的一些东西,象山的路边交通很像之前看过的台湾偶像剧里面的建筑,可能因为都毗邻海边的缘故,建筑风格也很像,和对象嘻嘻笑笑的踏上了回杭的旅程。

总结下来,对这次旅行还是比较满意的,除了开始的时候在高速堵车,其他时候还是很畅通的,风景吃喝都没有委屈自己,非常棒!完结撒花!

开心的下午茶时光
开心的下午茶时光

郊游(第34期):拉市海 湿地博物馆 乡村动物园 孔雀开屏

近期习惯性睡早些,醒来也早,梦也多了。不想被噩梦困扰索性醒来就起干事,完成常规事项后出发附近乡村超市买菜,原本是前晚去的,考虑到大晚上菜肯定不新鲜了,早早的去希望买些新鲜菜。

结果与晚上无异,那种别人不要或者其他超市卖剩不要似的,尤其绿叶菜,焉料吧唧的,烂菜叶一般,价格还不便宜,这有点搞笑,老太太老大爷们轮流扎堆精选。果断没买,选了些品质还行的硬货回家。

回家想起书店阅读计划假期结束应该恢复了,简单收拾出发,扫个哈啰电单车到忠义市场门口,穿过丽江古城到了繁华老街民主路上新华书店。新华书店没了,居然没了,出乎意料但又合乎情理,现在谁还买书呀。


隐私保护:因涉及隐私内容RSS已做隐藏,请通过原文链接阅读更多
版权声明:如无注明均为原创,未经允许不得任何形式转载
原文链接郊游(第34期):拉市海 湿地博物馆 乡村动物园 孔雀开屏

良凤江国家森林公园

5月2日,乘坐公交车前往南宁市南郊的良凤江国家森林公园,地理位置比较偏,只有沿途的学生还在乘坐该公交车抵达学院。 我是中午抵达的,天气炎热,售票口已经关闭,我还以为不开了,前往检票口时旁边的办公室内...

隐私保护:由于图片显示问题,部分内容已被隐藏,详细信息请通过原文链接查看。
版权声明:本文所有内容均采用 (CC BY-NC-ND 4.0),转载需保留出处。
原文链接:良凤江国家森林公园

关系是如何被精准爆破的?

跟前助理的关系一直卡了一个点,就是我们原本是以朋友关系作为基础构建的关系,随后有了合作关系,甚至还有前助理与我老婆之间的师徒关系。按道理来说,关系的层级越多,其实关系越难以被破坏。但这一次因为她的情绪再一次爆发,导致合作关系层面的崩溃,我们原本以为只要解除了合作层面的关系,还能维系朋友层面的关系。但很奇怪,这一次的矛盾之后,我们连朋友关系也跟着一同覆灭了,所以问题到底出在了哪里?

我是一个对关系抽身非常快的人,快到甚至有些「不负责任」,这是我一直以来的问题所在。甚至是越亲密的关系,这种抽身的行为就会越干脆,且是全方位的抽身。

我过去有一份工作,成为我的主管之前其实是我的朋友。我们一开始合作都很愉快,但随着我要接手的工作越来越多,无法再享受他身份带来的庇护时,我会开始自我怀疑「是不是他不想再照顾我」了。所以当我们在工作层面发生争执时,我最后是从朋友关系层面撤离的,并且还裹挟了大量的私人情绪——既然我们是朋友,那我也要让你知道这件事让我不满的代价是什么。


关系层级

有一段时间,我会借由老师丁锐对于朋友层级划分的方式,来划分自己的朋友圈。他会按照「有情」「有用」「有趣」来划分自己的朋友层级,建立的顺序则是反过来的:先因为有趣彼此吸引,再在接触之后有了更多共事的机会;当有利益捆绑、或是资源交换时,便到了有用的层级;最后,哪怕是合作结束、彼此很长一段时间没有联系,但因为有情的联系,两人也不会因此而关系疏离。

当然,这是非常理想化的构建状态,每个人也会因人而异地「留」下一些舍不得断绝、但也不知道如何再重新构建的关系。

所以现在出现了一个问题:如果是先「有情」,再是进入到合作关系从而建立「有用」的关系,这样的顺序会不会也可以构建稳定的关系层级呢?我们和前助理就是这样的构建方式,但问题也出在了这个构建的解构上面——工作关系解除的同时,有情的部分也跟着倒塌了。这是让我们产生了严重内耗的地方,我们是否在用这种方式「全盘否定」他人?

换一个视角,这三种层级的排列组合,是否意味着某一种关系的稳定性?


关系层级的地基与稳定性

其实关于「稳定性」的讨论本身并不合理,就算是两夫妻也可能大难临头各自飞。所以不是说得要足够有趣、有用、有情,关系才不会结束——但我觉得这是方法论和技巧层面的问题。如果单从理想状况来分析,以利益维系的关系相对来说本身是更稳定的,因为关系破灭就意味着既得利益的丧失。加之人们又会做出对自己有利的选择,所以更在乎眼前利益的人,当然也更愿意去维系以利益作为地基的关系。

另一种,「期待利益」对一些人而言也是「利益」。比如添加进微信列表里的「大佬」,就算两个人一句话都没有说过,甚至连朋友圈都是三天可见、什么互动也无法创造,但是一些人还是认为他们「有用」,因为「说不定未来某天就可以用上」。

大部分的社交关系都更像是从有趣开始建立的,但是这里也发生了大部分现代人的社交通病——仅仅只是停留在「有趣」的层级。这种有趣会随着联系和关注的减少越来越难以维系,所以干脆自我调高社交层级,把「有趣的人」仅仅当成当下的社交关系,而不再付出感情(因为这个付出的投入产出比太低了)。

一开始就以有情作为基础的关系其实很少见,所谓的有情也是要在关系建立的过程中一步步升温加热的。它更像是关系进入到下一个层级之后重新划分的新关系层级。比如当跟一个「有趣」的人长时间热络之后,渐渐了解彼此,觉得可以开始正式地付出感情的时候,将对方划入了有情的层面,而这些有情的基础就是两个人相处期间的「沉没成本」——而这个沉没成本又是把很多人锁死在关系中的根本原因,因为已经付出了这么多,所以我不舍得放弃。所以我在有情作为地基的关系里,特别提到了「愧疚」这个模块。

这三种模式在追求什么?

  • 有趣的内核——真诚。如果我变得不有趣了,我们的关系还会继续吗?有趣的关系并不是很难维持,而是大部分现代人并没有把有趣当做是可以作为维系的方式。就像我前面提到的,人们因为担心投入产出比问题,不再对有趣的朋友投入过多的社交成本。
    • 那什么才是大家认为的「有趣」?我也问了身边的几个因为有趣和我建立联系的朋友,他们认为和我建立有趣层级的关系,是因为跟我聊任何话题都可以。「聊任何话题」更像是一种功能,而非涉及到个人情感的部分。所以进一步追问对方聊什么最有趣,他们都觉得是跟我聊个人经历的时候——而这些个人经历有一个核心,我们在彼此交换个人经历时,并不是在炫耀,而是因为觉得对方真诚而觉得有趣;
  • 有用的内核——契约精神。合作的本质是契约精神,这一点毋庸置疑。一旦一个人违约或是食言而肥,那关系的信任度就会持续调降,直到最后再无合作机会。
    • 另一个问题:有用的关系必须是要达成双赢的吗?零和博弈是不是也是一种有用的模式?例如这一次的零和关系我是受益方,那为了维系关系,下一次若达成了零和关系,我也甘愿成为付出方,让对方成为这一次的受益方。我觉得这更接近「拎得清」的部分。
  • 有情的内核——信任。信任比契约精神更高层级的点在于,契约精神最终考量的是结算时,双方可以从中获利,就算撕毁契约,也仅仅影响的是最终的利益分配而已。但信任不同,信任更像是两个人一起上战场,你能把后背托付给对方的确定感。
  • 「真诚」的判定标准其实非常主观,我可以仅仅因为不喜欢这个人,而觉得对方虚伪;「契约」更像是白纸黑字,既然无法履行约定,那就意味着「没用」而「真诚」是一个完全模糊标准的存在,甚至更多时候它需要像温水煮青蛙一样的过程,才会在最后那一刻上演背刺的桥段当然也有人是追求被背刺的这一刻的)。

关系爆破指南——怎么炸才能炸到最精准

就拿我们和前助理的关系举例,我们的关系的基础是「有用」和「有趣」,作为朋友我们由衷地喜欢她带给我们的活力,而且她也是我们用来重构童年里关于「友情」「同学」「室友」符号的很好的朋友。

也是因为这样的关系,我们在合作层面开始建立更多的联系。但这个过程中也就发生了我年轻那会经历过的事情——当工作上存在问题时,我们的要求过于严苛时,她会觉得我们在情感层面否定了她的「价值」。不过我也觉得,硬要把这样的情感理性地拆分成工作层级和情感层级,也确实很为难人。

但是反之,当她因为生活所谓爆炸的时候,我们其实也是在努力地帮她解决她在亲密关系里的问题,但这个时候她会因为本能将所有不支持她的言论都视为「敌人」,在有情的部分否定我们的真实意图——我们只是在就事论事地分析问题根源,而不是反对她而支持她的老公。

这样的事情发生过太多次之后,以至于最后这一次,仍然是我们在因为合作的事情产生矛盾时,在合作事宜上面就事论事,结果最终她再一次炸在了有情层级,也就是关系的地基层面,才导致了整个关系的轰然倒塌——我们就算截掉了有用的部分,想要回归到有情有趣的部分,但那个地基已经不稳了。因为我们也会开始担心,下一次再遇到同样的事情,会不会还是在地基的部分继续爆破?

为了避免这种百分之百可以炸得彼此体无完肤的情况,就必须先和对方确认「我们在聊什么」

  • 关系的层级有哪些,哪一层是基础?
    • 分别的方式很简单,就是什么对你来说最重要:真诚、契约精神、还是信任;
    • 其次,你最不能接受什么,对方不再有趣、你们不再有情、对方不再有用,你会因为什么想要放弃这段关系,就意味着它很有可能就是最开始建立的基础;
  • 现在哪一层发生了问题?
    • 关系的金字塔搭建得越完整,就越需要确认出正在发生问题的层级,而不是一股脑地投下原子弹破罐破摔地等着对方收拾残局;
    • 若非地基层的矛盾,例如通过有情建立起来的有用的关系,在有用层级发现对方是第一个不靠谱的合作者,你现在想要提醒对方甚至是结束你们的合作关系,那就在合作层级就事论事地找到问题和提出解决方案,一旦双方有任何一方换赛道开始在有情层级罗列罪证时,必须要停下争论,再次强调「我们在聊什么」;
    • 「我们现在是要以合作关系聊问题,还是以朋友身份聊问题?」
  • 如果是地基层级发生了根本性问题:
    • 同步感受比同步事实更重要,即双方是否还愿意重建这段在地基爆破的关系;
    • 避免因为情绪上头做出的决定,设定冷静期,让彼此重新考虑关系维系的可能性;

允许自己成为那个「坏人」

当我混杂了所有的情感,在最后那一刻毅然决然地抽身——这件事并没有对错,这个时候我反而觉得个人感受更重要,因为就算委屈自己停留在关系里,因为自己的逻辑没有盘清楚,也不会好受。

抽身越彻底、关系结束后越冷漠、甚至还会有陆续的看上去有些自暴自弃的切断关系的自爆行为,其实触发的是另一个有关社会心理学的理论——贝勒定律。

贝勒定律原本是指,当右手被放置一个 300 克的砝码时,当左手的砝码加到 306 克时,两只手才会感觉出差异。但随着基础值的提高,如果右手被放置的是 600 克的砝码,左手需要增加到 612 克才能察觉出差异。当人经历强烈的刺激后,再施予的刺激对他来说也就变得微不足道。

但一个人在感情里付出了大量感情之后,若最终分离所带来的刺激是前所未有的,此后他对这段关系结束的任何刺激都会变得麻木。而这种强烈的抽身行为,也是一种心理保护机制,避免自己再受到后续的持续性伤害。

这个时候就会出现刚好一正一反的微妙平衡——当关系终结的两个人,一个因为陆续的抽身行为避免自己受到伤害,例如现实切断联系、再是拉黑、从有用层级切断到有情层级等等,先不论对方是否希望通过这种方式吸引对方的关注,来迫使对方休战和好,但当对方因为贝勒定律开始对刺激变得麻木时,无论对方做出怎样的「威胁」行为,都只会默默地认可和顺杆爬的时候,双方都会因为这样一步一步的切断而最终导致关系的终极终结,即关系的地基也被毁于一旦。

因为最大的伤害,在关系破灭之处就已经造成了难以重新修复的爆破伤害,而这个爆破很有可能就是人们在处理关系时,明明在聊有用的事情,却在有情的部分炸得一塌糊涂。

当然了,既然关系终究会终结,搞清楚这些又有什么意义——我觉得至少得让关系死得明白、死的瞑目吧!

楠溪江自驾Day2 - 寻源大青岗

楠溪江自驾的第二天,从埠头镇出发,沿溪下线和陈界线探索永安溪的美景,途经永溪村、美岙村等地,体验了越王古道的历史文化,享受了下岸水库的壮观景色,最终在溪下村寻找楠溪江的源头,虽然旅途充满挑战,但沿途的美景和独特的体验让人难忘。

“包好!小栓——你不要这么咳。包好!”  — 《药》

五一假期,提前两天就回来了,想着也是如果宝子有落下的作业,再补补作业。不过,这一旦有了时间,宝子的姥姥就开始准备做吃的,主要也就是两种,一种是水饺,另外一种是馅饼。

听起来,似乎温馨充满了整个房间,到处都洋溢着幸福的味道。

其实,有时候我挺不喜欢他们这种所谓的自残式的的付出的,看着让人心惊胆颤。出去玩的这几天没怎么控制饮食,所以导致体重又上升了好几斤。回来之后感觉单纯的靠锻炼已经没有什么效果了,于是开始服用药物。

所以对于吃什么的,自己并没有太多的想法。想着只要宝子能吃好就行了,自己吃不吃倒是也无所谓。尽管如此,还是不想他们大费周章的去做什么。

不过宝子的姥姥姥爷既然已经决定动手了,自己也不好再说什么。姥姥给的理由是他们俩给宝子的小姨看孩子,平时不在这里,做什么吃的我们也吃不上,觉得不公平,对不起我们。宝子的小姨自己一个人在家带孩子,可以中午过来吃。

这一切听起来似乎也没什么问题,然而,在干了不到一半的时候。宝子的姥爷突然说,你妈肩膀疼,你们找时间去跟她检查检查。

“啥时候肩膀疼了?”我问了一句。

就这一句惹了祸了,姥姥瞬间提高了声调:“我肩膀疼和你们说了多少次了?!也没个人和我去看看”

听到这句话我瞬间懵了,这从来我都没听到过啊。对象说,可能是和双双(宝子的小姨)说的。

“恁妈这肩膀疼了很长时间了,……”宝子的姥爷开始解释。

有的时候真的挺佩服她的,自己肩膀疼,一方面说自己不想麻烦孩子,但是自己也不去看,就是懒得出门,一旦有点什么事情就不想露头,什么都想让被人代劳。然而,不明说,还要到处阴阳别人。本来一句话的事情,就说自己要去看看肩膀,但凡这么说了,请假都陪她去。然而,他这个疼也是天天吆喝,狼来了的故事一次次上映,也不知道她是真疼还是假疼。

终于水饺煮好了,让过去吃饭。我怕烫,都是等凉凉了才过去吃。宝子、小姨、宝子的弟弟先去吃。

吃饭的时候,看到姥姥去逗弟弟,问:“姥姥能不能挨着你啊?”

“不行”弟弟说道,一边说,一边往边上推她。

“恁这些白眼狼,都是白眼狼”看着宝子说道,“你是大狼”,又指着弟弟说道,“这是小狼!”说完就气呼呼的走了。

吃完饭,大家开始商量着挂号,检查的事情。放假有的科室不上班,想着等上班了去挂号检查。于是就这么简单的决定了。

下午吃完饭,他们都走了,姥姥姥爷跟着小姨带着孩子一块走了,毕竟还得给他们看孩子。

晚上宝子做作业,我在看电视,这时候大门开了。姥姥回来了,气鼓鼓的样子。问了下才知道,原来小姨下午回去之后也肩膀疼,然后就去拿药了。左等右等不见回来,终于过了一个多小时回来了,原来是在社区医院做了针灸。

这下算是捅了篓子了,自己肩膀疼没人管,自己肩膀疼就知道马上去医院看,去医院针灸拿药。这大公主哪受得了这刺激,直接气鼓鼓的跑回来了。看那个表情,也的确不想搭理她,爱咋咋地吧。

周二晚上,下班一起往回走的时候,宝子的小姨说:“老妈以为我今天是生日,说什么孩生日,娘苦日。逼着老爸给她煮了碗面条,还加了个荷包蛋吃了。但是问题是我是明天生日啊,以为我过生日,结果什么都没提。” 医院的预约也排上了,系统检查需要住院,大概得两三天,她说为了能让她好好水饺,预定的单间。呵,不得不说,这待遇真是牛逼到顶了。

昨天晚上,下班凑到一起,宝子的小姨又说了:“老妈今天又以我过生日的名义,让老爸出去给她买的鱼吃的。撒娇女人真好命”

这概括也的确准确啊,他们这些人,把养育子女当成了投资,所以一旦自己的孩子,少有不顺心,就开始各种 pua。白眼狼,白养了,各种话就开始絮叨不停。动不动就是为了你们怎么怎么着,问题是我不需要你为了我们。如果觉得自己的孩子是负担,那就别要孩子。那种苦难式的的付出,没困难制造困难也要表达他们的付出的,看着就累。也无法共情。

电视上,那些通情达理的父母果然都是别人的,而至于自己的父母,除了 pua 就是 cpu。哪有这么所谓的同理心,在他们看来孩子不过是自己的附属品,他们有绝对的权威。没有公主命,却得了公主病。带她出去玩也罢,出去吃饭也罢。都得不断的照顾她的喜好,这不吃,那不吃,这不行,那不行。即使满足了这一切,稍微哪天自己做的不到位,之前的种种新仇旧恨就一起翻出来,开始各种批斗。仿佛她们现在的这种境遇都是我们造成的。

即使是按照他们的投资逻辑来看自己的子女,他们的投入有多少?他们又给了什么?这一切都是我们奋斗来的,而不是他们给予的。说道给与,不过是给了条命,仅此而已。父母有恩吗?父母无恩,养育自己的子女那是义务,子女扶养父母,也是义务。是该做的,他们对我无恩,我对宝子也无恩,这是我的孩子,我对她好,只是因为我爱她,而不是我对她有什么所谓的恩情,也不希望她将来会为了报恩来委屈自己。

体检报告全部出来了,各种异常情况比之前又多了很多。建议还是减肥,低盐低脂饮食等等,这一切似乎也无药可医,至于他们的心病,我也无药可施。

昨天下午同事过来说,公司又要裁员了。现在的这些年轻人,之前是他们说的扶不起的 80 后,现在这些 80 后门承担的压力超过了之前他们所有的人,他们的压力和心病又有什么药能治疗?除了要承担工作,生活的压力,还要不断的应付父母,忍受他们的 pua,这又有什么药能治疗?

“包好”,这人血馒头治疗不了小栓的咳嗽,这世间的药,也解不了生活的疾苦。

The post appeared first on obaby@mars.

吸入异物

五一之后的第1个工作日,除了之前所谈到的那些糟糕以外,还有一个就是我去拿磅单的路上,还有大概50米就到计量中心,突然间吸入了不知道一个什么东西,那玩意直接进入我的左鼻孔,接下来我猛打了好几个喷嚏。眼泪鼻涕一起流。在到达计量中心之前,连续打了好几个,到了室内也打了好几个。看到那里有一包纸巾。我赶紧就去擤鼻涕。连续好多次之后,总算有点缓解了,但我觉得那个东西应该还在鼻子里面。因为整个人的反应就是依然在排那个异物。所以那到底是什么呢?某个灰尘?某个花粉?某i个虫子?可以肯定的是我在中招的那个地方,旁边就是来拉货的大货车。刚好他们正在排队上磅。鬼知道那些车上带了什么。每次路过减速带肯定得抖一抖,车上的东西会抖下来。排队上磅是一个走走停停的过程,启动的那一下一踩油门,也说不准会带起些什么东西。

所以为什么600多张单我花了差不多半个小时才点完,就是因为一边点,我还得一边的对抗打喷嚏、擤鼻涕、流眼泪。糟糕的异物,说不准什么时候就会飞进眼睛,跑步的时候撞上的概率尤为高,但这还是我第一次走路的时候突然间这种异物进入我的鼻子。眼睛也好,鼻子也好,都是痛苦你一番。如果鼻子排不出,可能还得通过咳嗽从喉咙排出来,但最终有没有排出呢?显然我不知道,但起码在计量中心数单数到后期的时候,我的症状明显减轻了。回到办公室以后,基本上也不流不流泪,不流鼻涕了,但是整个人却依然处在好像低烧的状态。好像整个免疫系统都在进行某种抗争,好不容易我才从五一假期最后两天的喉咙痛中恢复过来,突然又遇到了这么一出。

跑步的时候想眼睛不撞虫子,可以带个护目镜或者太阳眼镜,但我基本不戴。走路的时候遇到鼻孔异物吸入这种东西,最完美的方法当然是戴个口罩,什么口罩都行,哪怕是最一般的防护口罩。我感觉那个东西没办法穿透,口罩那几层无纺布。之所以让我反应这么剧烈,是因为那个东西可能有一定体积的。当然,这只是我的猜测。如果回到办公室,我喝完那些数,依然有强烈的不适感,我就打算回宿舍用盐水洗涤,因为从另一个鼻孔洗鼻进去,理论上应该可以把那个异物洗出来。前提是我没有已经把那东西吸到很深的地方。后来因为症状减轻了,所以我就没有回宿舍洗鼻了。

洗鼻是个非常有效的操作,但没做过的人可能会对这个东西心存恐惧,觉得有可能会呛水,会很痛苦。如果你很紧张,非常有可能真会被呛到,但只要过了一开始那个恐惧的坎,之后的过程很舒服,尤其是如果你有鼻炎,在洗鼻的时候又看到一条鼻涕虫被你洗出来了,洗完以后鼻子完全通畅,那个感觉非常好。但我觉得,如果你是一个健康的人,没有什么问题。没有必要经常洗鼻。就像如果你是健康的,没有必要用某些有特殊用途的洗涤剂去清洗某些地方。因为人体是一个很微妙的存在,我们没必要主动破坏那些微环境。

每次想到回宿舍可能会遇到那些恶心人的非洲蜗牛,我就感觉整个人都不好了。

规范、法律规范及其逻辑结构:从最初的故事到法律的发现

在这篇教学材料中,我提出了一些从中介论、指示论触发的论述,重构了法律实证主义的理论叙事,认为法律规范是人们以事实探求规范所获得的操作化版本。对法律概念——它就是人们以事实探求规范的心理模式,一种心理事实——的分析是全新的,但进一步的课题和困难需要在新的文章中讨论。

【日记】2025.05.07

1.作业

我们轮机维护与修理老师上课的时候,说作业要写在本子上,不要写在纸上(可能说的是蓝本子,但是谁知道蓝本子指的就是学校的本子啊)。然后我就直接拿我自己的本子写了,结果今天交作业的时候说,这本子不行,要学校的本子。(因为大了一圈)就很无语。

弄得我晚上又花了三个多小时,重新抄了一遍,很久都没有一下子这么大的写字量了,手好累了。(仿佛抄了一篇课文。)

我下次再也不用自己的本子了,可恶。

2.香蕉

今天去超市买面包的时候,发现货架上出现了一根香蕉,甚至还贴了标签。学校的超市卖的东西也越来越抽象了。

在超市的香蕉
香蕉

3.头像

我二姐换头像之后,我老觉得ta是我大姐的姐夫(因为头像很像,都是花)。然后我二姐的备注和我姐夫的昵称是一样的。

微信搜索的时候不仅会搜索到备注,还会搜索到昵称,然后我还要反应一会。不得不说,头像还是有它存在的必要性的,可以方便认人。

安利一下我最近写的两个caddy插件

我个人 Caddy 粉哈,习惯 Caddy 一梭子,从我历史博客中就可以看出来。最近写了两个 Caddy 的插件,geocngfw.

源码及镜像

源码 ysicing/dockerfiles#caddy

以下是我构建好的镜像,可以根据自己的环境拉取

  • ysicing/caddy2
  • ghcr.io/ysicing/caddy2
  • registry.cn-beijing.aliyuncs.com/k7scn/caddy2
  • ccr.ccs.tencentyun.com/k7scn/caddy2

源码构建

需要 go 环境了

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
xcaddy build \
    --with github.com/caddyserver/jsonc-adapter \
    --with github.com/caddy-dns/cloudflare \
    --with github.com/caddy-dns/tencentcloud \
    --with github.com/caddy-dns/alidns \
    --with github.com/ysicing/caddy2-geocn \
    --with github.com/ysicing/caddy2-gfw \
    --with github.com/mholt/caddy-dynamicdns \
    --with github.com/mholt/caddy-events-exec \
    --with github.com/WeidiDeng/caddy-cloudflare-ip \
    --with github.com/xcaddyplugins/caddy-trusted-cloudfront \
    --with github.com/mholt/caddy-l4 \
    --with github.com/mholt/caddy-webdav \
    --with github.com/mholt/caddy-ratelimit

插件 geocn

  • 源码:https://github.com/ysicing/caddy2-geocn
  • 用途:识别来源 ip 是否为中国 ip,我的大部分服务都开启了这个,只针对大陆放行,甚至部分服务只针对部分省市(误判比较大,后续有需要也可以开源 😄)
@china {
		geocn 
	}
	file_server @china {
		root ./docker/example/deny
	}

上面是默认参考,正常情况下不需要调整,GeoIP 数据源来自 Hackl0us/GeoIP2-CN,支持自定义

geocn {
 georemote 你的自定义地址
}

插件 gfw

{
    order gfw before respond
}

:80 {
    gfw {
        # 基本规则配置
        block_rule ip:1.2.3.4
        block_rule url:/admin
        block_rule ua:curl
        block_rule_file /path/to/rules.txt
        ttl 24h

        # 额外安全检测(默认关闭)
        enable_extra true
    }
}

目前是所有实例共享黑名单的,命中就 1 天黑名单直接返回 403,之前想的是命中后触发 hook 执行 iptables 封禁 ip,但是容器跑的好像不太方便。

最后

大家对 Caddy 插件有什么的需求或者想法么?


崇安刹那镜浮光

5月3日,借着去城里大世界影城看低配版复仇者联盟的契机,自个儿拿着GR在对面崇安寺步行街区city walk了 […]
❌