''

Orien Daily

  1. 「妥当」不代表「随便凑合」——一个中文母语者特别容易踩的坑日语里「妥当(だとう)」这个词,对中文母语者来说是个隐形的陷阱

    「妥当」不代表「随便凑合」——一个中文母语者特别容易踩的坑

    日语里「妥当(だとう)」这个词,对中文母语者来说是个隐形的陷阱。中文说"这人做事很妥当",是夸他把事情办得周全稳当,日语里也有这层意思,但它在学术和正式场合更核心的含义是"合理论理的、适当的"。论文里频繁出现的「妥当な説明」「妥当性を検証する」,绝不是在说"差不多说得过去就行",而是在严肃声明:这个解释逻辑上站得住脚。更要命的是,中文的"妥"总带着点"妥协、将就、退而求其次"的味道,但日语的「妥当」完全没有这层将就感——它指向的是逻辑自洽,不是退让。所以在对方面前夸一个方案「妥当です」,对方不会觉得你在说"还行吧",而是听到了"这方案论证充分,没问题"。

  2. 你的服务器正在替攻击者发请求——认识 SSRF假设你做了一个功能,用户提交一个 URL,服务器帮忙去抓取那张图片再返回缩略图

    你的服务器正在替攻击者发请求——认识 SSRF

    假设你做了一个功能,用户提交一个 URL,服务器帮忙去抓取那张图片再返回缩略图。看上去很合理,对吧?但问题出在这里:服务器发出的请求,用的是内网身份。攻击者提交的 URL 如果指向云元数据接口 http://169.254.169.254/latest/meta-data/,你的服务器就会乖乖地把 AWS 的 Access Key 全部拉回来交给对方。这就是 SSRF——Server-Side Request Forgery,让服务器变成攻击者的代理。

    SSRF 的危害远不止泄露云凭证。内网服务之间往往互相信任、不做鉴权,攻击者可以通过你的服务器IP访问到本不该暴露的 Redis、Elasticsearch、甚至 Kubernetes API。2021 年的 Capital One 泄露 1 亿用户数据,根因就是 SSRF 读取了 EC2 元数据后拿到临时凭证,进而访问 S3 存储桶。

    防御 SSRF 的思路有三层。最外层是限制目标地址:域名解析后检查 IP 是否落在内网段,但这里有个老陷阱——DNS Rebinding 可以让首次解析返回公网 IP、二次解析返回内网 IP,绕过你的校验。中间层是网络隔离:让处理用户请求的应用容器完全无法访问云元数据接口和内网管理端口,从拓扑上切断可能性。最内层是取消凭据传递:使用 IMDSv2 要求 PUT 请求先拿 token 才能访问元数据,IP 层面的 SSRF 根本无法完成这个交互。

    真正安全的系统不是"我检查了你给我的地址",而是"就算你骗过了检查,你也拿不到东西"。

  3. 📸 @shinji_marosan ×3皆様こんばんは😊今日(6/20)所属道場 稽古2026年154回目子供時間は初心者さん指導補助2級以下審査で防具なし受審する子の審査指導大人時間6段先生と面打ち基本稽古7段先生(2人)にかかる中心を意識する竹刀を握りしめないこと良い評価をいただけました湿度高くて暑かった🥵 #剣道原文 #剣道

    📸 @shinji_marosan ×3
    皆様こんばんは😊
    今日(6/20)所属道場 稽古
    2026年154回目
    子供時間は初心者さん指導補助
    2級以下審査で防具なし受審する子の
    審査指導
    大人時間
    6段先生と面打ち基本稽古
    7段先生(2人)にかかる
    中心を意識する
    竹刀を握りしめないこと
    良い評価をいただけました
    湿度高くて暑かった🥵 #剣道
    原文 #剣道

  4. 📸 @CFADnFpiqAnFf0Tいつもお相手をお願いする高齢七段先生がお休みだったので今日は、若い先生にお相手をお願いしました

    📸 @CFADnFpiqAnFf0T
    いつもお相手をお願いする高齢七段先生がお休みだったので今日は、若い先生にお相手をお願いしました。たまには試合に近い稽古も良いかと思います。体のキレというか,,,動きが違います。 #剣道
    原文 #剣道

  5. 📸 @OngakuBakaDesu ×2第七十九回目

    📸 @OngakuBakaDesu ×2
    第七十九回目。
    今日も、全身汗だくな稽古でした。
    (・∀・)
    今日は、ASKAさんのご友人の試合の日。
    YouTube生配信で応援しよう!
    ✊✊✊✊✊✊✊
    さて、安全運転で帰ります。 #剣道 #ASKA #Fellows #Fellows所属 #剣道始めて1年9か月
    原文 #剣道

  6. Linux 调度器的红黑树:CFS 如何用一棵树做到"绝对公平"早年的 Linux 调度器管理进程的方式很粗暴——把所有可运行进程串在链表里,要找下一个谁跑就从头扫到尾

    Linux 调度器的红黑树:CFS 如何用一棵树做到"绝对公平"

    早年的 Linux 调度器管理进程的方式很粗暴——把所有可运行进程串在链表里,要找下一个谁跑就从头扫到尾。进程少的时候没问题,一旦服务器上跑了几千个进程,每次调度都在做无用功。2007年,这个矛盾终于激化:社区推出了好几种替代方案,最终 Ingo Molnar 的 CFS(完全公平调度器)被合入主线。

    CFS 的设计哲学干净得令人愉悦。它抛弃了传统的时间片概念,只维护一个量:每个进程的 vruntime(虚拟运行时间)。逻辑再简单不过——谁累积的 vruntime 最小,谁就最"亏",就该下一个跑。你不需要优先级数组,不需要过期队列,不需要一堆 if-else。但问题来了:怎么在一个动态变化的集合里始终快速拿到最小值?唤醒的进程要插入,阻塞的进程要删除,每一微秒都在发生。

    CFS 的答案是一棵红黑树。所有处于可运行状态的进程以 vruntime 为 key 挂在红黑树上。红黑树的自平衡特性保证了查找、插入、删除都是 O(log n)。而最左节点永远是 vruntime 最小的那个——取下一个进程只需 O(1),沿着 tree->rb_leftbost 往左走一步就行。相比之下,旧调度器的代码里维护着活跃数组和过期数组两套链表,还得在它们之间做转移,充满了边界条件。CFS 用一棵树把这些特殊情况全部消除了。

    值得一说的是为什么选红黑树而不是堆。堆找最小值确实是 O(1),但进程不光是从队列头部离开——一个进程可能因为等待 I/O 从树的任何位置被移走。堆删除中间节点是 O(n),而红黑树删除任意位置节点是 O(log n)。