See MJ !

程序媛早起为码字

Svn和Git漫谈

Git比SVN好的地方主要在于,去中心化。添加了本地仓库管理。对于经常更新自己工作进度的用户,它能支持离线存版本,打Tag,也能较好保护远程代码不被污染,更好地支持版本控制在实际应用场景中的需要。 Git在开源界使用的更多,相比起来,SVN在企业界更吃香的主要原因,一是由于Linux, Windows不同操作系统下完善的工具支持。Linux下有纯命令行工具,Windows下有乌龟(Tortorise),可以查看代码修改、提交记录,撤销回滚,更新,轻而易举。 另一个是因为它们的权限管理有较大区别。曾经在Debian下使用过gitosis搭建git远程仓库,它的配置文件gitosis.conf格式如下:

1
2
3
[group mobile]
members = scott
writable = iphone_project

Scott用户拥有项目iphone_project的写权限,git的权限设置粒度是基于项目的,开源界行得通的规律在企业界就玩不转了。企业里,一个项目可能关系整个企业命脉,权限这种管理的很严格,所以更需要像SVN这种基于目录设定权限的控制方式。使用过svnserve搭建过SVN远程仓库,它的配置文件authz的格式如下:

1
2
3
4
[project:/server](project的子目录)
@admin = rw
@user = rw
* = 

在配置使用方面,SVN要比Git来的低效。比如想要设置忽略某种后缀文件,Git中,在Git工作区下建立一个名为.gitignore的文件,依次向其中写入你不需要git识别、提交的文件,git就不会对工作区中符合列表中条件的文件进行版本跟踪。.gitignore会被提交到仓库也影响对其他人提交的过滤,只在本地生效的方法是修改.git/info/exclude,书写规则相同,则不会影响其它人的设置。

SVN设置忽略要使用svn:ignore指令,旧版本的SVN更低效,每个文件夹底下有一个.svn,管理起来相当麻烦。据说新版的更改了这种管理方式。

把SVN仓库转换到Git仓库经典做法是使用官方提供的svn2git脚本。

Python之禅

在python终端输入import this,将会显示python的语言哲学

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
In [1]: import this
The Zen of Python, by Tim Peters
Python之禅

Beautiful is better than ugly.
美好过丑
Explicit is better than implicit.
明了好过晦涩
Simple is better than complex.
简单好过复杂
Complex is better than complicated.
复杂好过凌乱
Flat is better than nested.
扁平好过嵌套
Sparse is better than dense.
稀疏好过拥挤
Readability counts.
可读
Special cases aren't special enough to break the rules.
特殊实例不能打破规则
Although practicality beats purity.
即使当前实用迫切过一致
Errors should never pass silently.
错误不能忽略不理
Unless explicitly silenced.
除非你有意为止
In the face of ambiguity, refuse the temptation to guess.
模棱两可,猜测不能允许
There should be one-- and preferably only one --obvious way to do it.
什么事情应该有——最好有一个显而易见的解决方式
Although that way may not be obvious at first unless you're Dutch.
一开始总是没那么显而易见谁让你不像荷兰人
Now is better than never.
有空还是看看
Although never is often better than *right* now.
即使往往有些问题不去理它好过立刻解决
If the implementation is hard to explain, it's a bad idea.
实现难以描述出来就不是个好主意
If the implementation is easy to explain, it may be a good idea.
实现能简单描述出来可能会是个好主意
Namespaces are one honking great idea -- let's do more of those!
命名空间很了不起,可以多借鉴

SVN配置文件解析

搭建一个SVN服务器,主要用于代码、文件等的版本控制。

通常有两种配置方式,一种是结合apache服务器,给apache添加SVN模块,修改配置,重启服务,这种方式相对复杂,但能提供多种认证,能建立一套安全的版本控制环境;另外一种是使用独立服务器,svnserve,这种方式简单暴力。除了环境本身的配置文件,apache的诸如httpd.conf, apache.conf,svnserve本身的svnserve.conf之外,SVN的权限管理文件的配置形式大体上一致。

以svnserve为例,配置文件可启用一个配置文件authz管理所有仓库的配置,也可以配置成一个配置文件管理一个仓库的模式。这里简化,只介绍一个文件配置一个仓库的情况。

authz的常见格式有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#每一部分通常为组定义,可以有多个组,每个账号可以属于多个组
#通常一组为一行,后面的定义会覆盖前面组的定义
[groups]
group = user1, user2
group2 = user3, user4, user5
group3 = @group, user6

#以下是目录权限定义
#权限的表达方式只分为:只读r, 读写rw, 无权限
#等号左边的\*号表示对所有
[/]
* = r
@group = rw
user4 = rw

[/]
@group2 = rw
user6 = rw

[/trunk]
@group3 = rw
user5 = rw

[/tags]
@group3 = r
user5 = rw

对于组的定义[groups]有几点说明:

    • 组的等价定义是一种包含关系,如上文,组group3包含了用户user1, user2, user6,在目录权限[/trunk]中,组拥有读写权限,表示此目录对用户user1, user2, user6开放;
    • 组包含了另外一个等价组,当另外一个组没有定义时,配置文件不合法
    • 组之间若有相互引用,换言之,组不能被解析尽,则配置文件不合法, 如下所示
1
2
3
4
[groups]
group=@group1
group1=@group2, user6
group2=@group, user5

同理,当权限定义中, 某个路径指定了某个组没有定义,配置文件也不合法?

关于大小写,尝试了某个版本,发现:

    • 路径是大小写区分的
    • 用户是大小写区分的
    • 组是大小写不区分的

此外,路径必须要是绝对路径,以’/‘开头,否则,配置文件失效。 配置文件失效的时候,在客户端连接SVN服务器的时候能够得到’invalid authz’的提示。

测试过程

1
2
3
4
5
6
7
#配置文件
authz
passwd
#启动服务:
svnserve -d -r /home/cmj/svn-project/
#使用客户端连接:
svn checkout svn://[server_ip]/repos/doc --username bob

如上文,出现了两次关于SVN的路径定义会覆盖?

大多数的SVN服务器版本来说,配置文件中路径的定义并没有先后之分,被引用组的定义甚至可以出现在被引用之后,而与在之前定义并无二义。但是对于某些较早时代的版本与现代的版本有较大差异,部分SVN配置文件对于父子目录的权限控制有相关关系。此是后话。

无损压缩算法优劣之比较

数据压缩常见于传输、存储,按照数据能否被还原,压缩算法可以分有损压缩和无损压缩。有损压缩,常见于视频,图像传输,主要为了降低带宽,加快传达。这里讨论无损压缩。无损压缩主要是采用了编码的技术,利用数据冗余进行压缩而不引起失真,例如Huffman编码。

基于无损压缩的算法有很多,算法相对复杂,常见的有zip, 7z, winrar, lzop,gzip等。这里无关算法,只关心它们的使用。有的压缩算法常常会结合打包进行,例如gzip和tar打包结合,有的算法,不仅利用了文件内部的冗余,也利用了文件和文件之间的冗余。基于此,压缩算法又分为两种,solid和非solid的。

solid compression,多个文件一起打包,特别是对于同种格式的数据文件,可以利用文件之间的相似性,得到最大程度的压缩率。这种方式比较适用于打包并压缩许多无压缩小文件的情况。例如7zip和gzip算法,都属于这种类型。

非solid compression,即使在多个文件一起打包时,内部也是针对一个一个文件进行压缩,文件的隔离性很好,压缩速度也比较快,总之各种好,唯独在处理许多小文件的压缩时,效果不是很理想。例如zip的压缩。

凡使用压缩算法,无论是传输和存储,无非是空间换时间,或者时间换空间的障眼法。压缩算法使用的指标,常见有:压缩时间、压缩率、解压速度、内存要求、压缩中是否保持原有文件属性、有没有简单易用的库可用,等等。

常用压缩算法,比较:

改变

初读本书让我想起我读研究生的一位软件工程的导师。他不高,讲话带方言,常常咬文嚼字让人听不懂整句话的意思。可是他几乎每一节课都只在重复一个课题,变与不变。比如聊到即时通讯工具,往对方传消息是正常做法,往对方传送视频是微创新,而往对方传送的如果是运行一半的程序,则是变;又比如完成一个软件,你应该首先关注它内部会变更的部分。这种变化涉及到多重含义,比如软件功能因不同的用户群而有不同的理解,比如因时因地软件应该有不同的展现,或者把变更的部分作为软件的独立配置可动态改变。寥寥数语,对我之后关于软件构建的印象却影响很大。仅以此书评,纪念我这位已逝去的可敬可佩的倪老师。

变化有多个层次。

第一层,基于系统内的改变。书用了群论来支撑变与不变的观点。群是由某一共同特征的成员组成。群成员以各种不同的顺序来组合,而组合的结果相同。群内必定包含恒等成员和相反成员,使得成员间的组合仍然为成员本身,或者为恒等成员。系统内的改变虽是改变,可是不颠覆系统本身,即对事物没有质的提升,属于所谓“第一序改变”。

第一序改变对我们的影响常常是问题形成的原因。明明想解决事情的,却发现越弄越糟。源于群内有多个成员,个人有不同欲望,无论人本身还是社会,都是悖论的结合体。书中举了个例子,就像失眠。失眠的人睡不着很痛苦也意识到这个问题,心中数着好多只绵羊,强迫自己能够睡着。而睡着本身是自然而然的过程,不能带有强迫。于是绵羊常常越数越多,失眠人终于一夜未庥。所以下次遇到这种时候,只有反过来让自己睁开眼睛一定不能睡着,自己才能莫名奇妙地入睡。悖论是问题产生的第一种原因。

问题产生的第二种原因。根据常识,抵制一件令人痛苦或不愉快事情的解决方法,就是将其对立者引入该情境中。“持续加强统一行动”是他们改变的方式,而这一解决方案即成为问题本身。这个要求好高。它要求我们的思想和行为都不按照常理出牌,不按照别人的思维发散。有人跟你谈论悲伤,你就可以骂醒他。有情侣在路边吵架,最好你去问个路。有人高谈阔论自己的知识,你要表示质疑而不是附和。这个过程可能无情无厘头或者有失风度,可是能带来相反效果。从群论的观点来看,系统内在第一序改变潜能,足以应对变动,而其结构维持不变,就像两位水手往两边卖力狂妄地拉着一条船,船向一方倾斜,出现问题了,另外一方想要解决问题让结构保持不变,于是也很卖力。于是双方越来越卖力。比如恋人之间拼命想要对方证明对自己的爱,就是这种结构的映射。

问题产生的第三种原因。陷入可怕的简化或者乌托邦主义。典型的简化是轻易认为“这个问题不是问题”,从而否定问题本身。轻易说一件事情很简单只不过暴露了说话者头脑的简单。相对于过度简化,乌托邦是另外一个极端。它主要包括三种方式:“内射式”,由于当事人苦于无法达成自己的目标,而觉得是个人有所欠缺而导致的;“满怀希望地跋涉,胜过抵达目的地”。这类行为稍微有受虐倾向,享受目的没有达成的过程,容易落入拖拉的圈套。比如大考之前不想复习,反而会去看看小说或者打打游戏,享受这种煎熬本身;第三种,“投射式”,跟第一种的区别在于认为出现问题,问题不在自己,在社会环境。这类行为容易站在道德的制高点去批判其它人,认为自己才是站在真理的一方,肩负着维护世界和平,社会公平的审判人角色。

这两种行为最大的问题是在于面对问题,采用的观点或者采取的方式不合理,可能到导致想要解决“并不存在”的问题,无法区分事实或者事实的前提,容易怀疑自己或者质疑他人。都是不利于解决问题的。

第二层,改变之改变。书中用了逻辑类型理论来解释超越既定系统的架构变化。“凡涉及某集合的全部成员者,必定不是该集合的一员”。若以其中一个来解释另外一个,势必导致荒谬和混淆。此是第二序改变。

挑战悖论常常能刺激事情完成第二序改变。我们常常会面对希望推动某事物能够“自发地”完成。老师要求学生“自发”去学习;恋人希望伴侣自发地做自己想要他做的事情,如果是我开口提出来的,那就不想要了。这种场景下,解决之道总是成为问题本身。

面临问题,直捣问题的核心关键是研究是什么而非为什么,把矛头直指解决之道。以结果为导向来思考,“是什么”比“为什么”重要的多。譬如最常见的,程序员在完成代码的时候有时候会遇到一些无法解决的问题,习惯的做法是模拟一个测试环境测试过程中发现错误得到一些错误提示,把错误提示复制粘贴到谷歌上搜素,看看是怎么一回事。面对错误,大家的第一反应总是“肿么了”。但实际上一旦各种阴差阳错,曲线救国解决了问题之后再来回顾问题产生之初,以及从问题产生到我解决问题的所有有用功来衡量就会发现,某个错误为什么发生根本一点都不重要,这个成功是如何到达的才是最终目的。所以一第二序改变要求我们在开始时不拘泥于细节,以结果导向,做尽量多的有用功。

完成第二序改变其实比想象中困难好多。或者有重新框定问题的艺术,或者有冷静定位问题层次的意识;“化暗为明”,“小题大做”,“故意忽视”,“仁慈地破坏”,利用情景使人好奇,或者愤怒等与该情境不相称的情感,能够给问题的解决打开一道小缺口。我们是要做制定游戏规则的人,而不单纯是在玩游戏本身。

秘密

重读的缘由?
第一次读这本书是在五年前,表姐的床头书柜上,我随手抽出这本,以为内容有的没的,无非励志学之类,念念就睡得着了。没想到念是念完了,心里却愤愤不平。大凡励志学,鄙人一向认为是门离奇的科学,里头无非说得好像你周遭环境没有主人公所处的恶劣就也能获得他的成就一样。而这本书违背这种套路,其离奇程度恐怕可甩它们十条街。它认为,你没有,是因为你不想要。时间只是个幻象,宇宙显现你想要的,是不花任何时间的。如果你觉得时间有延宕,这是因为你尚未达到相信、知道和感觉到“你拥有它”的地步。没错,这的确是一本唯心论的书。

再念它,已是五年后的今天。期间我念完本科念完研究生,然后毕业租房工作,日子平淡如流水。如今的我在NIE,有一天我收拾东西,找到一张小纸条,上面是从前的我对未来生活的想象。比如有个贴心的BF,比如进实验室,比如去实习;这些今天我都已经历过。对于我现在工作的地方,我觉得也有某种缘分在。四年前,打从我第一天进入实验室后,桌上一直摆放着师兄师姐留下的日历,上面写着就是“NIE欢迎你”。还有一些愿望,比如拥有自己的个人主页,比如重拾吉它,给Total发明信片等这些琐碎但一直被耽搁的事情,冥冥之中总是因为这样那样的机缘巧合,我还是做到了。比如一直拖着没有给Total发明信片,却在毕业的那天发现学校免费帮毕业生往国内外派发明信片;比如因为舍友玩了乐器,激发了我下定决心重新玩吉他的热情。冥冥之中,我以为我早已忘记的梦想,蓦然回首,却一一做到。

于是,我想起多年前的这本书。再念它,仍是巧合,那天在JD买书,它就在推荐书栏这么出现。像书中所说,当你开始想念时,你就是宇宙最有力的发射塔,不断吸引你想要的在你身边出现。

信不信由你
因为如此,我一直保持着更新ToDoList的习惯,ToDoList不像备忘录,更像愿望清单多一些。如果不是特别重要的,我并不去记录它的完成期限。一直以来,我非常享受把它记录下来,在我快要忘记的时候突然周围有人提起或者有这样的机会,于是,做这件事的时刻就到了,屡试不爽。我只要有着这个念头在心里,同时不因为时机未到纠结它而花费精力,万事俱备的时候,脑子里这个念头冒出来,于是一切就水到渠成了。

生活怎么过?我觉得不可能比自己想要的还更加丰富多彩。而且你如何过,都总能找到方法让它比现在过的更加丰富多彩。对于生活的面貌,我心中也一直有个念想,而且从不强求。然后有一天,我发现生活的样子就是从前梦想过的样子。所以,首先要留个心,然后在恰当的时刻让思想恰当地呈现,再有快速的行动力,就像我突然想游戏的银子应该积累起来后,我才发现我的银子可以越攒越多。相信我,我所仰望的,必定会得到。

魔力
《秘密》欣赏心灵的力量,它有几大法则,我认为最重要的只有一个,其它法则由此延伸开来。那就是吸引力法则。你心理渴望它,联想它,不断视觉化你想要的生活,就像你已经拥有了它,这种渴望在你身上起了刺激,向宇宙发出了信号,使得与它有关的事物都聚集在你周围。这里有两个要诀,它们之间是因果关系。一个是信,你的思维,你的行动都要完全切换到你好像已经拥有了一个样。之前有本书叫《富爸爸穷爸爸》,穷爸爸之所以穷是因为他总是穷人思维,不能想得长远。譬如你想多金,就想象你多金时候的生活方式,问问自己,你有一千万会怎么花?另外一个,是念。就是留心,信到了一定程度,吸引力开始发挥了作用,跟你思想有关的开始在你周围冒了出来。譬如你上小学的时候,你认为自己是小学生,周围也有很多小学生,除了自己的亲人亲戚街坊老师,好像没有怎么留心过周围大人的世界。等到你上了大学,你觉得周围的都是大学生,你就再也不关心小学生的世界了一样。像这一类的,这些原本都有在周围出现,不过你的心把它屏蔽了,留一份念想,就能把它们过滤出来。所以当你真正把自己想象成为富裕的人,必定也能够留心到周围富裕的人越来越多,富裕的生活方式也越来越多呈现出来。如果没有,那是你没有成功切换到这种境界。

感恩,专注也是这一类的附属品。因为拥有,所以你心怀感恩。因为感恩,所以才常常拥有。

我编程我快乐

这本书是一本教人如何的书,刚好,它的英文名就是”Creating A Remarkable Career In Software Development”,它是一本关于方法学的书。作者Chad Fowler从一位萨克斯演奏者半路出家成为一名软件开发者,讲述他作为一个音乐人对个人在软件行业中如何发展的思考。

书总共有五个部分,叙述如下:

选择市场,即如何用投资的眼光看待软件行业。要知道这个行业市场的竞争有多么强烈,分分钟有人和你抢饭碗,要的比你少,比你能吃苦和受委屈,做事情效率还比你高,结果还比你好。稍微留意国外的一些网赚网站,随便有人发个需求,不到一个小时就有来自印度的,俄罗斯童鞋一大波在版上讨价还价。投资的眼光是说把自己放到这种范围的激烈竞争环境中,了解市场供需平衡,将对一门新技术的学习当成一种技术投资。当然,投资从来不只是投资本身,你必须思维够独到,切忌孤注一掷,对它有种无法放弃的决绝。

在产品上投资,说的是做事的姿态要低,眼光要高,效率要留意,把自己做事情,学习的过程与所有相关的东西联系起来。比如“我们来为这个公司工作,目的就是为它赚钱或者省钱,但是我们根本就不懂这行是怎么赚钱的”,“忽略行业性质的人,往往会犯低级错误”。作者主张多了解行业详情,特别在互联网年头,作为一名服务行业工作者,光懂的技术往往是可以被替代的,只有在熟悉了业务的范畴,认识到业务的美感之后,在这个行业的地位才可以巩固。而一切都需要你主动出击,主动寻找良师,主动寻找榜样,寻找你可以帮助的人,敢于在大环境中表达自己的想法,主动储备自己的工具箱。真正的提高离不开练习和做事方法的讲究,在工作中,额外的,对比以前写的程序,等等。

执行,首先说说执行力,即快速行动的能力,“帕金森定律”说,完成一个任务需要多长时间,答案是“你给多少时间”。从这点来看的话无非是老生常谈了。独到的是,作者能够从联系的角度看待执行力低下的原因:“我们周围整个环境的速度拖慢了我们的速度”。文章主张把要做的事情看成一种竞赛,尝试为自己营造一种紧迫感。其次结果大于过程。很多时候失败就是失败,不带友谊第一比赛第二这种自我安慰法的。你的执行成果体现在团队成员是否阶段性地了解到了你所做的工作,你能否有阶段性的成果可以展示出来,大到一周,小到一天;别人对你执行成果的评价如何,团队成员更侧重于合作度和领导力,老大更侧重于你对公司的贡献,通过不同人物可以了解到你不同角度的价值所在。最后,时机重要过时间,效率重要过努力。文章提倡八小时激情燃烧,高效率不是有意识说加快速度干巴爹就行了的,在负责多变的要求中,学会根据事情重要程度说不,学会不拖延,不制造心理瓶颈,学会屡败屡战,学会主动沟通,及时反馈尤为重要。

推销自我,经营自己的SEO排名以及G商(即Google搜索排名)。即使表面不承认,自我的评价一定是要有美化作用的,比如我们通常会觉得自己唱歌很好听,敢于在KTV里鬼哭狼嚎。但是既然是推销,当然也重视他人对你的评价,毕竟效益什么的都掌握在他人对你的评价上,你说了不算数。自我推销说白了就是刷存在感。你要积极参与尤其是老大们组织的会议,学会沟通,善于写作,用适当的言语向不同人说明你的想法。在工作以外,我们能做的是发布你编写的程序,创建自己的商标,让自己短时间完成的作品也上得了台面,足够展示给别人看。最后一点,推销自我要借助他人的力量,比如认识重量级的人物并在业界重量级的人物能够知道你!

保持技术领先。选择当程序员,就是选择了一条没有终点的道路。前几天苹果发布了Swift,于是只懂Object C技能的程序员技能清零。留心自己引以为傲的技术是否已经过时是很多工作多年的程序员会忽略的事情。做到这一点最重要的是拥有领先的意识和评价自己的定期参考系。注重积累,只要每天一小步,十年就能成为一个专家了!

本书最特别之处在于它每章节后都有较强实践性的练习。有空可以专门对它们做个整理。书名略挫,内容五星!

三毛之稻草人手记

三毛三十岁后跟荷西结婚,他们婚后在一起的时光有六年。要说他们之间感情深,比他们深的金婚银婚什么的多了,人物形象之深刻却总也比不上这一对人儿。只能说,两个自由的人儿结合在了一起,一个酷爱感怀,一个酷爱潜水。他们生也是为这一份酷爱,逝也是因为这一份酷爱。

《稻草人手记》写于他们两人婚后两三年之间,相恋容易相处难,三毛跟荷西也不是例外。和谐的时候,在三毛眼里,荷西就是亲切的大胡子,大胡子很可能是金牛或摩羯这一类土象星座,他务实,目的性强,他会木工,会潜水,几乎能包揽所有的修理活;他几乎不会甜言蜜语,可是三毛会!他们对话简单却清新甜美。

大胡子问三毛,“你要一个赚多少钱的丈夫?”(标准的土象星座),三毛:“看的不顺眼的话,千万富翁也不嫁,看得中意,亿万富翁我也嫁。” 有一次三毛突然问大胡子,“如果有来世,你是不是还是娶我?”大胡子背着三毛干脆地说“绝不!”三毛当时又惊又气,一种作为女人的自豪感全没有了,竟恼羞成怒打了他一掌,谁知荷西无辜被打,又“跳翻身来与我抓着手对打”。对大胡子来说是很实际的,“下辈子,就得活个全新的样子,我根本不相信来世,再说,如果有下辈子,娶个一式一样的太太,不如不活也罢。”可是大胡子也有让三毛灰心失意的时候啊。男人在处理婆媳之间关系的时候总是很笨地想让自己置身事外,有时会体谅到家人养育自己这么大不容易,心里的天平就好容易向自己的妈妈和家人那边倾斜了。在“亲爱的婆婆大人”,“这种家庭生活”里,三毛也是一个过分紧张和稚嫩的小媳妇。婆婆家对刚刚逃出战乱的他们的情况毫无问起,在他们刚刚逃难出来的时候居然一家老小奔着来做客!全部家务活包揽,还要留意婆婆家各种人上至婆婆下至小朋友的需求,然后还要忍受荷西像不认识的路人一样丝毫不为她考虑和争取的决绝,还要不能有怨言,还要忍受小孩子的嫌弃,“舅妈是坏人,她只会在厨房,只会说吃饭啦,只会烫衣服,她不会玩,不会疯,不会买玩具。她是一个土里土气的家庭主妇。”,真是身心俱惫,三毛想起了自己的妈妈在中国的日子,作为一个“四代同堂的主妇,要整天面带笑容”,在三毛看来,这是多么令人崩溃,以至于觉得“为什么我才做了五天,就觉得人生没有意义?”,“我不是谁,我什么人也不是了”,对大胡子是“我甚至连你也不爱”,“也许,是她们不够爱我”。想想可怜,三毛跟她的妈妈是不同的两类人。她的姆妈也许才是那种有博爱精神的好人,三毛不是,三毛是很自私的,她的爱全源自于她热爱生活,如果她忙的连生活都不爱了,她就什么都不爱了。

邻里的人物已经不是《稻草人手记》的主线了,但还是得提提米盖。三毛和荷西的好朋友。“士为知己者死”写了米盖,一个快乐又逍遥自在的单身汉坚持不肯结婚,因为他不愿意他最爱的女朋友去沙漠过苦日子。但是三毛却因为受到他女朋友的苦苦请求,力劝米盖结婚。之后米盖还是听从了好朋友的建议娶了贝蒂。可是之后的生活并不像三毛所幻想那般来个情侣Party之类的生活。贝蒂对婚后的米盖财务管的很紧,不让他以正常礼仪接待友人,不让他回马德里看望公婆,让他几乎没有自由。而在摩洛哥攻打西属撒哈拉的时候,贝蒂为了家庭经济,坚持让他的老公冒着危险继续工作,荷西和三毛以为贝蒂会礼尚往来地对待这么好的朋友,期望越高,失望就越多,两个人的心被贝蒂深深伤透了。本来故事这么结局的话,贝蒂是多么招人恨,米盖是多么招人同情。但是结局很可能是贝蒂怀上了米盖的孩子,所有的精打细算都是为了以后的人生。也许我们该埋怨的不是贝蒂而是贝蒂的生活啊。