Skip to content

Commit a39a4e7

Browse files
committed
feat: add 包法利夫人
1 parent 3f1952b commit a39a4e7

5 files changed

+78
-2
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@
184184
- [你的生存本能正在杀死你](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E4%BD%A0%E7%9A%84%E7%94%9F%E5%AD%98%E6%9C%AC%E8%83%BD%E6%AD%A3%E5%9C%A8%E6%9D%80%E6%AD%BB%E4%BD%A0.md)
185185
- [冰与火之歌](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%86%B0%E4%B8%8E%E7%81%AB%E4%B9%8B%E6%AD%8C.md)
186186
- [刀锋](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%88%80%E9%94%8B.md)
187+
- [包法利夫人](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%8C%85%E6%B3%95%E5%88%A9%E5%A4%AB%E4%BA%BA.md)
187188
- [南京大屠杀](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%8D%97%E4%BA%AC%E5%A4%A7%E5%B1%A0%E6%9D%80.md)
188189
- [原则:应对变化中的世界秩序](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%8E%9F%E5%88%99%EF%BC%9A%E5%BA%94%E5%AF%B9%E5%8F%98%E5%8C%96%E4%B8%AD%E7%9A%84%E4%B8%96%E7%95%8C%E7%A7%A9%E5%BA%8F.md)
189190
- [哲学家们都干了什么](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%93%B2%E5%AD%A6%E5%AE%B6%E4%BB%AC%E9%83%BD%E5%B9%B2%E4%BA%86%E4%BB%80%E4%B9%88.md)

分布式系统/ZooKeeper/ZooKeeper: Wait-free coordination for Internet-scale systems.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ Additionally, when creating a new znode, a client can set a *sequential* flag. N
5454

5555
ZooKeeper implements watches to allow clients to receive timely notifications of changes without requiring polling. When a client issues a read operation with a watch flag set, the operation completes as normal except that the server promises to notify the client when the information returned has changed. Watches are one-time triggers associated with a session; they are unregistered once triggered or the session closes. Watches indicate that a change has happened, but do not provide the change. For example, if a client issues a getData(‘‘/foo’’, true) before “/foo” is changed twice, the client will get one watch event telling the client that data for “/foo” has changed. Session events, such as connection loss events, are also sent to watch callbacks so that clients know that watch events may be delayed.
5656

57-
**Data model.** The data model of ZooKeeper is essentially a file system with a simplified API and only full data reads and writes, or a key/value table with hierarchical keys. The hierarchal namespace is useful for allocating subtrees for the namespace of different applications and for setting access rights to those subtrees. We also exploit the concept of directories on the client side to build higher level primitives as we will see in section 2.4.
58-
5957
![image-20231121224624384](../../images/distribuide_system/zookeeper1.png)
6058

59+
**Data model.** The data model of ZooKeeper is essentially a file system with a simplified API and only full data reads and writes, or a key/value table with hierarchical keys. The hierarchal namespace is useful for allocating subtrees for the namespace of different applications and for setting access rights to those subtrees. We also exploit the concept of directories on the client side to build higher level primitives as we will see in section 2.4.
60+
6161
Unlike files in file systems, znodes are not designed for general data storage. Instead, znodes map to abstractions of the client application, typically corresponding to meta-data used for coordination purposes. To illustrate, in Figure 1 we have two subtrees, one for Application 1 (/app1) and another for Application 2 (/app2). The subtree for Application 1 implements a simple group membership protocol: each client process pi creates a znode p i under /app1, which persists as long as the process is running.
6262

6363
Although znodes have not been designed for general data storage, ZooKeeper does allow clients to store some information that can be used for meta-data or configuration in a distributed computation. For example, in a leader-based application, it is useful for an application server that is just starting to learn which other server is currently the leader. To accomplish this goal, we can have the current leader write this information in a known location in the znode space. Znodes also have associated meta-data with time stamps and version counters, which allow clients to track changes to znodes and execute conditional updates based on the version of the znode.

分布式系统/ZooKeeper/Zookeeper.zh.md

+23
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,26 @@ ZooKeeper服务由一组服务器组成,通过复制实现高可用性和高
3636

3737
## 2 The ZooKeeper service
3838

39+
client使用ZooKeeper client library 提供的 client API 请求ZooKeeper。client library除了提供 client API 访问 ZooKeeper 的接口外,还负责管理 client 和 ZooKeeper server 之间的网络连接。
40+
41+
在本章节中,我们首先提供一个整体的ZooKeeper 服务的视图,然后讨论下 client 和 ZooKeeper 交互的 API。
42+
43+
**Terminology**(术语):本文中,我们使用*client*表示 ZooKeeper 服务的用户,*server*表示提供 ZooKeeper服务的进程,*znode* 表示 ZooKeeper 中的内存数据节点(data node),这些数据节点通过*data tree*的方式组织在分层命名空间中。我们还使用terms update, write 来指代修改 data tree 状态的操作。clients 在连接 ZooKeeper 时会建立一个*session*,并且会获取一个 session handle 用来发送请求。
44+
45+
### 2.1 Service overview
46+
47+
ZooKeeper向 client 提供了一组通过分层命名空间(hierarchical name space)组织的数据节点(znode)的抽象。client通过ZooKeeper API来操作分层结构中的数据对象,znode。分层命名空间(hierarchical name spaces)通常用于文件系统中。这是一种理想的组织数据对象的方式,因为用户已经习惯了这种抽象,并且可以更好的管理应用程序的元数据。我们可以使用 UNIX 系统中标准系统文件路径的方式来引用 znode。例如,我们使用/A/B/C来表示 znode C 的路径,其中 C 的父节点是 B,B 的父节点是 A。所有的 znode 都存储数据,除了临时 zonde 之外,所有的 znode 都可以有子节点。
48+
49+
client 可以创建两种类型的 znode:
50+
51+
- **Regular**:client 通过显式的创建和删除来管理 regular znode。
52+
- **Ephemeral**(临时的):client 创建这种类型的 znode 后,要么显示的删除它们,要么让系统在 session(会话)终止的时候自动删除它们。
53+
54+
此外,在创建新的 znode 时,client 可以设置一个*sequential*flag。设置了sequential flag的节点会在名称中附加一个单调递增计数器的值。假如 n 是一个新的节点,p 是父节点,n 的序列号则不会小于p 下已经创建的其他sequential节点名称中的序列号。
55+
56+
ZooKeeper 实现了 watches,允许 client 不需要轮询也能及时接收更改通知。在 client 设置了 watch flag 的情况下发出 read 请求时,操作也会正常完成,只是 server 承诺在返回的信息变更时通知 client。watches 是与 session 关联的一次性触发器,一旦触发或者 session 关闭,它们就会取消注册。watches 表明更改已经发生,但是不提供更改的具体内容。例如,如果执行了`getData(‘‘/foo’’, true)`后更改了两次,client 将会收到一个watch事件,告诉 client`“/foo”`数据已经更改。Session事件(例如链接断开事件)也会触发 watch 回调,以便 client 感知 watch 事件可能会延迟。
57+
58+
![image-20231121224624384](../../images/distribuide_system/zookeeper1.png)
59+
60+
**Data model.** ZooKeeper的数据模型本质上是具有简化版的接口,只能进行完整数据读写的文件系统,或者是一个具有分层接口的key/value表。分层命名空间对于为不同的应用程序分配子树,以及为这些子树设置访问权限很有用。我们还利用 client 的目录概念来构建更高级别的语法,例如2.4节的内容。
61+

文学/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
- [你的生存本能正在杀死你](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E4%BD%A0%E7%9A%84%E7%94%9F%E5%AD%98%E6%9C%AC%E8%83%BD%E6%AD%A3%E5%9C%A8%E6%9D%80%E6%AD%BB%E4%BD%A0.md)
1212
- [冰与火之歌](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%86%B0%E4%B8%8E%E7%81%AB%E4%B9%8B%E6%AD%8C.md)
1313
- [刀锋](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%88%80%E9%94%8B.md)
14+
- [包法利夫人](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%8C%85%E6%B3%95%E5%88%A9%E5%A4%AB%E4%BA%BA.md)
1415
- [南京大屠杀](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%8D%97%E4%BA%AC%E5%A4%A7%E5%B1%A0%E6%9D%80.md)
1516
- [原则:应对变化中的世界秩序](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%8E%9F%E5%88%99%EF%BC%9A%E5%BA%94%E5%AF%B9%E5%8F%98%E5%8C%96%E4%B8%AD%E7%9A%84%E4%B8%96%E7%95%8C%E7%A7%A9%E5%BA%8F.md)
1617
- [哲学家们都干了什么](https://github.com/Uyouii/Reading/blob/master/%E6%96%87%E5%AD%A6/%E5%93%B2%E5%AD%A6%E5%AE%B6%E4%BB%AC%E9%83%BD%E5%B9%B2%E4%BA%86%E4%BB%80%E4%B9%88.md)

文学/包法利夫人.md

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
## 包法利夫人
2+
3+
——[作者] []福楼拜
4+
5+
### **第一章**
6+
7+
1. 母亲总把儿子带在身边,为他剪硬纸板,给他讲故事,没完没了地自言自语,快乐中有几分忧郁,亲热得又过于啰唆。她的日子过得孤寂,就把支离破碎的幻想全都寄托在孩子身上。她梦想着高官厚禄,仿佛看见他已经长大成人,漂亮,聪明,不管是修筑桥梁公路也好,做官执法也好,都有所成就了。
8+
9+
2. 布告栏里的功课表使他头昏脑涨:解剖学、病理学、生理学、药剂学、化学、植物学、诊断学、治疗学,还不提卫生学和药材学,一个个名词他都搞不清来龙去脉,看起来好像神庙的大门,里面庄严肃穆,一片黑暗。
10+
11+
他什么也不懂,听讲也是白搭,一点也没理解。不过他很用功,笔记订了一本又一本,上课每堂都到,实习一次不缺。他完成烦琐的日常工作,就像蒙住眼睛拉磨的马一样,转来转去也不知道磨的是什么。
12+
13+
3. 人只要一马虎,就会自然而然地摆脱决心的束缚。有一次,他没去实习,第二天,又没去上课,一尝到偷懒的甜头,慢慢就进得去出不来了。
14+
15+
4. 她总是把他送到第一级台阶。要是马还没有牵来,她就等着。告别之后,他们不再说话;四面都是风,吹乱了她后颈窝新生的短发,吹动了她臀部围裙的带子,好像扭来卷去的小旗。在一个解冻的日子,院子里的树皮渗水了;房顶上的雪也融化了。她站在门槛上,把阳伞拿来,并且撑开。阳伞是闪色绸子的,阳光可以透过,闪烁的反光照亮了她面部白净的皮肤。天气乍暖,她在伞下微笑,听得见水珠点点滴滴落在绷紧的波纹绸伞上。
16+
17+
5. 但是她急于改变现状,也许是这个男人的出现带来了刺激,这就足以使她相信:她到底得到了那种可望而不可即的爱情,而在这以前,爱情仿佛是一只玫瑰色的大鸟,只在充满诗意的万里长空的灿烂光辉中飞翔——可是现在,她也不能想象,这样平静的生活,就是她从前朝思暮想的幸福。
18+
19+
6. 一个男人难道不该和他恰恰相反,难道不该无所不知,多才多艺,领着你去品尝热情的力量、生活的三昧、人世的奥秘吗?可是这位老兄,什么也不知道,更不能教你知道,甚至自己根本不想知道。他以为她快乐,不知道她怨恨的,正是这种雷打不动的稳定、心平气和的迟钝,她甚至于怪自己不该给他带来幸福。
20+
21+
7. 她的心也一样:一经富贵熏染,再也不肯褪色。
22+
23+
8. 艾玛穿一件领子敞开的室内长袍,上身带披肩的翻领之间,露出了打褶的衬衫,上面有三粒金纽扣。她腰间系一条有大流苏的腰带,脚上穿一双石榴红小拖鞋,还有一束宽带子摊开在脚背上。她自己买了吸墨纸、一支笔、信纸、信封,虽然没有通信人。她掸掉架子上的灰尘,照照镜子,拿起一本书来,然后,心不在焉地让书掉在膝盖上。她想旅行,或者回修道院。她既想死,又想去巴黎。
24+
25+
9. 这种失望带来了烦闷,她的心又觉得空虚,于是没完没了的、同样无聊的日子又开始了。
26+
27+
现在,这种同样的日子一天接着一天来了,毫无变化,数不胜数,却没有带来一点新鲜的东西。别人的生活尽管平淡无奇,但至少总有发生变化的机会。运气碰得巧,说不定还会带来千变万化,甚至改变整个生活环境。而她呢,什么好运道也没有碰上。这是天意!对她来说,未来只是一条一团漆黑的长廊,而长廊的尽头又是一扇紧紧闭上的大门。
28+
29+
10. 但她特别忍受不了的,是吃晚餐的时候,楼下的餐厅这么小,火炉冒烟,门嘎吱响,墙壁渗水,地面潮湿。人生的辛酸仿佛都盛在她的盘子里了。闻到肉汤的气味,她灵魂的深处却泛起了一阵阵的恶心。夏尔吃的时间太长,她就一点一点地啃榛子,或者支着胳膊肘,用刀尖在漆布上划着一道道条纹。
30+
31+
### **第十一章**
32+
33+
1. 她这是第四次在一个陌生的地方睡觉。头一回是进修道院的那天,第二回是到托特的那一晚,第三回是到沃比萨,而这次是第四回了,每一回似乎都在她的生活中开始了一个新阶段。她不相信:在不同的地方,事物会现出相同的面目;既然过去的生活不如人意,剩下来等待消磨的时光,当然会更好了。
34+
2. 她希望生一个儿子,身体强壮,头发褐色,她要叫他乔治。这个生男孩子的念头,就好像希望弥补一个女人无所作为的过去一样。一个男人至少是自由的,可以尝遍喜怒哀乐,走遍东南西北,跨越面前的障碍,抓住遥远的幸福。可对一个女人却是困难重重。她既没有活动能力,又得听人摆布,她的肉体软弱,只能依靠法律保护。她的愿望就像用绳子系在帽子上的面纱,微风一起,它就蠢蠢欲动。她总是受到七情六欲的引诱,却又总受到清规戒律的限制。
35+
3. 至于艾玛,她并没有问过自己是否爱他。爱情对她来说,应该突然而来,光彩夺目,好像从天而降的暴风骤雨,横扫人生,震撼人心,像狂风扫落叶一般,把人的意志连根拔起,把心灵投入万丈深渊。她不知道,屋檐的排水沟如果堵塞的话,雨水会使屋顶上的平台变成一片汪洋的湖泊,她自以为这样待在屋内安然无事,不料墙上已经有一条裂缝了。
36+
4. 这种可望而不可即的情况,更把她抬高到了超凡入圣的地位。对他来说,他既然得不到她的肉体,她似乎也就摆脱了凡胎俗骨。在他心里,她总是扶摇直上,远离人间,好像成了仙的圣徒,令人目眩神迷地飞上九霄云外去了。这是一种纯洁的感情,它并不会妨碍日常生活的运行,人们培养这种感情,因为情也以稀为贵,有了这种感情使人得到的享受,远远少于失去这种感情给人造成的痛苦。
37+
5. 她最恼火的是,夏尔似乎想都没有想到她在受苦。他居然以为是他使她幸福的。这种愚蠢的想法,在她看来,简直是一种侮辱,而他的心安理得,就是无情无义。她为谁做贤妻良母的?难道他不是一切幸福的障碍、一切苦难的根源,像一根复复杂杂的皮带上的尖扣针一样,从四面八方把她紧紧扣在他的身上?
38+
6. 啊,他走了,他是她生活中唯一的乐趣,是使幸福有可能实现的唯一希望!幸福出现的时候,她怎么不紧紧抓住!幸福就要消逝的时候,为什么不双膝跪下,双手拉住不放?
39+
7. 从这时起,对莱昂的回忆仿佛是她忧郁的中心,回忆在忧郁中闪闪发光,好像漂泊的游子在俄罗斯大草原的雪地里留下的一堆火。她赶快向这堆火跑去,蹲在火旁,轻巧地拨动快要熄灭的火堆,到处寻找能够把火烧旺的柴草,于是最遥远的回忆和最近发生的事情,感觉到的和想象到的,烟消云散了的对肉欲的渴望,像风中枯枝一样摇摇欲坠的如意算盘,没有开花结果的道德观,已经落空了的希望,家庭里的鸡毛蒜皮,她都集拢了,捡起来,加到火堆里去,使她的忧郁变得暖和一点。
40+
8. 那时多么幸福!多么自由!多少希望!多少幻想!现在一点也不剩了!她已经把它们消耗得干干净净了,在她的灵魂经风历险的时候,在她的环境不断改变的时候,在她从少女到妻子,再到情妇的各个阶段——就是这样,在她人生的道路上,她把它们丢得不剩一星半点了,就像一个旅客把他的财富全都花费在路上的旅店里一样。
41+
42+
### **第十九章**
43+
44+
1. “啊!”罗多夫心里想,脸色一下变得惨白,“她是为钱来的!”
45+
46+
于是他平静地说:
47+
48+
“我没有钱,亲爱的夫人。”
49+
50+
他并不是说谎。要是他有钱的话,他当然会借的,虽然一般说来,借钱的人都不大方。摧毁爱情的狂风暴雨,其中最冷酷无情,最能连根摧垮的,莫过于借钱了。
51+

0 commit comments

Comments
 (0)