検証と立証,学术写作里搞混就尴尬了
写论文的时候,有没有在「假设を検証する」和「仮説を立証する」之间犹豫过?这两个词都跟"证明"有关,但逻辑方向完全不同。検証是拿着已有的东西去检查对不对——实验设计、数据分析、流程审查,这些叫検証,重点是"确认是否正确"。立証是从无到有地建立起一个主张——用证据和论证让别人接受你的观点,这叫立証,重点是"使之成立"。换句话说,検証是对着一面墙敲它结不结实,立証是把砖一块块砌起来告诉别人这面墙站得住。学术界最常见的问题是该用検証的地方写了立証,比如实验部分其实在验证已有模型,你写成「モデルを立証した」,评审一看就知道你没分清。反过来也一样:如果你提出了新理论并用数据支撑它,那才该说立証。记住一个简单判断:你在查东西对不对→検証,你在证明东西成立→立証。那么问题来了——「誤りを指摘する」这件事,应该算検証还是立証?答案是哪个都不算,那是「反証」(はんしょう),证伪和证明也不是一回事
#日本語
写论文的时候,有没有在「假设を検証する」和「仮説を立証する」之间犹豫过?这两个词都跟"证明"有关,但逻辑方向完全不同。検証是拿着已有的东西去检查对不对——实验设计、数据分析、流程审查,这些叫検証,重点是"确认是否正确"。立証是从无到有地建立起一个主张——用证据和论证让别人接受你的观点,这叫立証,重点是"使之成立"。换句话说,検証是对着一面墙敲它结不结实,立証是把砖一块块砌起来告诉别人这面墙站得住。学术界最常见的问题是该用検証的地方写了立証,比如实验部分其实在验证已有模型,你写成「モデルを立証した」,评审一看就知道你没分清。反过来也一样:如果你提出了新理论并用数据支撑它,那才该说立証。记住一个简单判断:你在查东西对不对→検証,你在证明东西成立→立証。那么问题来了——「誤りを指摘する」这件事,应该算検証还是立証?
#日本語
This media is not supported in your browser
VIEW IN TELEGRAM
🎥 🔍 黄礼志 via @yejigallery ×2
instagram stories update with
HWANGderful YEJI DAY #YUNA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
instagram stories update with
HWANGderful YEJI DAY #YUNA #YEJI #ShiningAceYejiDay #믿지의_사랑을_예지의_포켓에_담을게
原文 #黄礼志
Media is too big
VIEW IN TELEGRAM
📸 @baseball_start
https://x.com/i/status/2059082812322705440/video/1
日本時間2026/05/26(火)ドジャースvsロッキーズ【5-3】
↓
ドジャースは3回にキケのタイムリー二塁打で先制も、4回と7回に失点し一時2点ビハインド。7回に大谷の二ゴロで1点を返すと、ベッツの犠飛、フリーマンの勝ち越し二塁打、パヘスのタイムリーで一挙4点を奪い逆転勝ち
↓
大谷選手は3打数1安打(1打点/1四球)、第1打席でライト線への二塁打を放つ
↓
※打撃成績(2026通算)※
【1打席】ツーベース🔥
【2打席】四球
【3打席】レフトフライ
【4打席】セカンドゴロ(1打点)
1... #大谷翔平【今日の成績】ドジャース逆転勝ちで3連勝
原文 #MLB日本選手
https://x.com/i/status/2059082812322705440/video/1
日本時間2026/05/26(火)ドジャースvsロッキーズ【5-3】
↓
ドジャースは3回にキケのタイムリー二塁打で先制も、4回と7回に失点し一時2点ビハインド。7回に大谷の二ゴロで1点を返すと、ベッツの犠飛、フリーマンの勝ち越し二塁打、パヘスのタイムリーで一挙4点を奪い逆転勝ち
↓
大谷選手は3打数1安打(1打点/1四球)、第1打席でライト線への二塁打を放つ
↓
※打撃成績(2026通算)※
【1打席】ツーベース🔥
【2打席】四球
【3打席】レフトフライ
【4打席】セカンドゴロ(1打点)
1... #大谷翔平【今日の成績】ドジャース逆転勝ちで3連勝
原文 #MLB日本選手
Media is too big
VIEW IN TELEGRAM
📸 @yukirir815
ゴールデンウィーク明けから3週連続土曜日出勤日曜日しか休みなしでいろいろと悲鳴があがってるけど、昨日の配信で元気と気合い出たので土曜日の休みまであと3日がんばります! #加藤小夏
原文 #加藤小夏
ゴールデンウィーク明けから3週連続土曜日出勤日曜日しか休みなしでいろいろと悲鳴があがってるけど、昨日の配信で元気と気合い出たので土曜日の休みまであと3日がんばります! #加藤小夏
原文 #加藤小夏
Linux 内存耗尽时,内核凭什么杀你的进程?
跑着跑着系统突然把你的进程干掉了,日志里只剩一句
核心机制藏在
评分不只是看 RSS。内核还会把子进程的内存累计到父进程头上,加上 swap 占用、页表大小这些容易被忽略的项。所以一个 fork 了好多 worker 的 master 进程,即使自己不怎么吃内存,总分也可能很高——这是很多人被杀之后一脸懵的原因。
整个流程是这样的:内核在分配物理页时发现已经没有可回收的页了(free + reclaimable 都低于 watermark),就唤醒 OOM killer。它遍历所有进程算分,排除掉内核线程、oom_score_adj=-1000 的免疫进程、正在退出状态的进程,然后从最高分开始往下杀。杀一个之后会等一小段时间看内存压力是否缓解,不够就继续杀下一个。
有个冷知识:如果你把进程的 oom_score_adj 设成 -1000,它确实不会被 OOM killer 杀——但如果这个进程触发了内核的 memory cgroup OOM,cgroup 级别的 killer 可不管你的 immunity,照样杀。所以"免疫"只在全局 OOM 场景下有效。
下次看到进程被杀,别急着怪运气差。去查
#CS
跑着跑着系统突然把你的进程干掉了,日志里只剩一句
Out of memory: Killed process 1234。很多人以为 OOM killer 是随机开刀,其实内核有一套相当精密的评分系统。核心机制藏在
/proc/<pid>/oom_score 里。内核会给每个进程算一个 0–1000 的分数,分数越高越先死。计算基础是进程占用的内存比例——你吃掉的物理内存越多,得分自然越高。但真正有意思的是 oom_score_adj,这个值范围 -1000 到 +1000,会叠加到原始分数上做偏移。sshd 这类关键守护进程默认把自己设成 -1000,相当于免疫;而那些 oom_score_adj=0 的普通进程就得裸奔,全靠实际内存占用量拼排名。评分不只是看 RSS。内核还会把子进程的内存累计到父进程头上,加上 swap 占用、页表大小这些容易被忽略的项。所以一个 fork 了好多 worker 的 master 进程,即使自己不怎么吃内存,总分也可能很高——这是很多人被杀之后一脸懵的原因。
整个流程是这样的:内核在分配物理页时发现已经没有可回收的页了(free + reclaimable 都低于 watermark),就唤醒 OOM killer。它遍历所有进程算分,排除掉内核线程、oom_score_adj=-1000 的免疫进程、正在退出状态的进程,然后从最高分开始往下杀。杀一个之后会等一小段时间看内存压力是否缓解,不够就继续杀下一个。
下次看到进程被杀,别急着怪运气差。去查
dmesg 里的 OOM 日志,看看那个进程的 oom_score 到底是多少——大概率它真的是吃内存最多的那个。#CS
你用密码登录了,但攻击者根本不需要密码
Windows 认证体系中有个一直没被修掉的设计缺陷:NTLM 协议在验证身份时,用的是密码的哈希值而不是密码本身。这意味着一旦攻击者在某台机器上拿到了一个用户的 NTLM hash——不管是通过内存抓取(mimikatz)、注册表导出,还是从 LSASS 进程里直接提取——他就可以拿着这个 hash 去向域内任何接受 NTLM 认证的服务证明"我是这个人"。整个过程不需要破解出原始密码,甚至不需要知道密码是什么。这就是所谓的 Pass-the-Hash 攻击。
听起来有点荒谬:系统明明有密码,为什么验证时不用密码?原因在于 NTLM 的挑战-响应机制。客户端收到服务端发来的随机 challenge 后,用密码的 hash 对 challenge 加密,返回结果给服务端验证。服务端手里存的也是 hash,它拿到 challenge 和响应后自己做一遍同样的运算来比对。密码本身从头到尾没出现过。攻击者拿到 hash 后,完全可以代替客户端完成整个流程。
一个常见的攻击链是这样的:先在一台低权限的工作站上拿到某个普通域用户的 hash,然后用这个 hash 横向移动到一台该用户有本地管理员权限的服务器,再从那台服务器上提取更高权限账户的 hash,一步步攀升直到拿到域控。整个链条里攻击者不需要爆破任何一个密码。
防御的关键在于限制 NTLM 的使用范围和减少 hash 的暴露面。微软从 Windows 10 / Server 2016 开始引入了 Credential Guard,把 LSASS 里的 hash 放到虚拟安全模式(VSM)中隔离运行,普通进程无法直接读取。同时,禁用 NTLM、强制使用 Kerberos,或者至少在域内限制 NTLM 认证的可用范围,都能显著缩小攻击面。不过现实环境里完全禁用 NTLM 很难做到——太多老旧系统和第三方应用还依赖它。
思考题:如果一个环境里已经启用了 Credential Guard,但域控本身没做额外防护,攻击者拿到一台普通机器的 hash 后还能做什么?
#Security
Windows 认证体系中有个一直没被修掉的设计缺陷:NTLM 协议在验证身份时,用的是密码的哈希值而不是密码本身。这意味着一旦攻击者在某台机器上拿到了一个用户的 NTLM hash——不管是通过内存抓取(mimikatz)、注册表导出,还是从 LSASS 进程里直接提取——他就可以拿着这个 hash 去向域内任何接受 NTLM 认证的服务证明"我是这个人"。整个过程不需要破解出原始密码,甚至不需要知道密码是什么。这就是所谓的 Pass-the-Hash 攻击。
听起来有点荒谬:系统明明有密码,为什么验证时不用密码?原因在于 NTLM 的挑战-响应机制。客户端收到服务端发来的随机 challenge 后,用密码的 hash 对 challenge 加密,返回结果给服务端验证。服务端手里存的也是 hash,它拿到 challenge 和响应后自己做一遍同样的运算来比对。密码本身从头到尾没出现过。攻击者拿到 hash 后,完全可以代替客户端完成整个流程。
一个常见的攻击链是这样的:先在一台低权限的工作站上拿到某个普通域用户的 hash,然后用这个 hash 横向移动到一台该用户有本地管理员权限的服务器,再从那台服务器上提取更高权限账户的 hash,一步步攀升直到拿到域控。整个链条里攻击者不需要爆破任何一个密码。
防御的关键在于限制 NTLM 的使用范围和减少 hash 的暴露面。微软从 Windows 10 / Server 2016 开始引入了 Credential Guard,把 LSASS 里的 hash 放到虚拟安全模式(VSM)中隔离运行,普通进程无法直接读取。同时,禁用 NTLM、强制使用 Kerberos,或者至少在域内限制 NTLM 认证的可用范围,都能显著缩小攻击面。不过现实环境里完全禁用 NTLM 很难做到——太多老旧系统和第三方应用还依赖它。
#Security