The Mirages

樱桃沟夹事

上周末和上上周末跟球子一起去上产前训练班。

第一节课主要目标是为了到时候可以顺利自然生产进行的。然后会有各种各样的训练动作,然后对于产程有了一点了解。

上完课后球子买了一个瑜伽球,这个主要是为了到时候可以坐上去,尽量跁开双腿,要能一字就nb了。

第二周学习的就是了解整个产程,各个产生如何放松,以及老公如何处理,如何呼吸等等。 其实这些都是书上有的,主要是为了球子周末别缩家里。

第二周来回都是用的滴滴打车,结果来回总共花了5快钱。

6月22日陪球子去二次产检。

这次是去东南院区看的,人明显比老院人多了,还好都是上次直接给号了。

开了一堆的血液检查和尿检,都没有啥问题,大夫也没特别关照的。

在B超的时候出现子宫积血,B超大夫问球子有没有出血的现象,球子说没有,然后去看医生也说没有问题,一般会自动吸收的。但是什么原因导致的没有问。

也算小虚惊一场啊。

海德堡算是大城市了,果然火车站比希尔塔赫的要大许多,不过一出火车站门口就全都是停放的自行车了。

这里有两个地很有名,一个是在山间的城堡,一个也是在山间的哲学家小径。两个地隔内卡河对望着。

刚到海德堡有点小雨,典型的黑森林气候,穿过欧洲最长的步行街就能到达城堡山底下。

IMG_8464_副本

要以前我俩肯定是爬山上了,可这次怀有小小球了,那就直接缆车吧。在缆车购票窗口两人研究半天,有各种出发和目的地,也分单程和来回,还有儿童和老年票啥的,半天后终于研究完并买好。

IMG_8476_副本

阅读全文 »

昨天跟球子一起去孕妇学校了。

全面学习了一下这个怀孕到出生的流程。

专家一直说中国的如何如何落后,现在中国刨妇产率之高是全世界少有的。

然后一直说美国怎么样怎么样的,看来美国确实是宇宙中心啊。

然后就是什么时候去医院,平时如何注意营养,合着球子现在每天的水果过多了,人家只要一个苹果就可以了。。。

总之我们缺乏的内容还是挺多的。下面就是这次的听课笔记了:

阅读全文 »

5月28日,小球球你妈今天下午给你去建档完成了,据说没啥人。看来你以后刚好避过了出生高峰期,可惜读书的时候还得碰到一堆小猴子。

球子建档异常的顺利,说医生就看着B超就觉得不错。也不用再另外补啥的,可我们的叶酸都补了快半年了。

周日进行了B超检查,居然能看到小小球的脑袋了。

而且检查结果一切正常,都有胎心了。

球子的高兴的心情真是溢于言表啊。

小小球你要加油啊。 你妈咪现在真是热切的盼望你的到来。

每天都让我听肚子里你的心跳啊,可惜现在应该都是听不到的,哈哈。

经过将近20个小时的折腾,终于达到目的地德国了。

下机场取行李的时候就发现了跟我们的不同,这边的行李机居然会自动识别行李带上是否有别的行李,然后会跳过这些,找个空的位置掉下来,这样避免压到别的行李。 这个虽然是很小的细节,可让人印象深刻。

在DB网站买了火车票,好像还便宜一点,然后在DB AUTO-MACHINE 上买也便宜,但是人工柜台买就贵一点了,同时本来以为转火车是非常麻烦的,结果这边火车转乘就跟地铁一样的方便。

这里也跟欧洲其他国家一样不用上车检票,只有有人上车来抽查票。但是德国更夸张的是,连地铁都没有检票的,只有自己去插一下票就行了。

这要在我朝这查票的还能忙的过来? 所以也就这人少的国家才这样呢。

终于到了希尔塔赫了,发现这里居然是汉斯格雅的总部,我靠,这么小的一个小村,居然还有这么NB的公司,为什么他们不搬到慕尼黑去呢?

阅读全文 »

准备德国旅行有小半年,可还是没有跟之前去西班牙和法国上心。 至少去那2个国家去之前读了很多两国的历史。而德国基本没有怎么看。   德国去的都是自然风景的地方,而不是人文方面的,所以都没怎么准备。   先说个德国的签证,约的大使馆的,而没有通过中智,省下一人200吧,但是450元人民币也是挺贵的,在欧元贬值那么多的情况下居然还要450人民币.   准备材料就是还是那些东西,目的就还是证明你真是去旅游的。不过我们好像每次签证都会有点小坎坷。   第一次去西班牙的时候,因为买的是从香港走的机票,所以后面又补了入港通行证。 第二次法国的时候,某人的2个2寸照片居然还不一样,于是在外面拍了又交上去。 这次是旅游保险买的刚好覆盖到德国境内的时间,结果大使馆认为时差的原因,要后面再加一天,于是在平安上面补了一天。 不过最终还都是很顺利的办出来了。   这次是完全奔着潇洒旅游方式去的,所以都是安排的很轻松的活动。连航班都是土豪阿联酋航空的,不过迪拜转机的代价还是挺大的,这个时间比较长的,比直达的时间要慢2个小时左右。 map 直飞是7800公里,而迪拜转机是11000公里左右,多了41%的航程要。这个距离跟北京去到洛杉矶的距离也差不多的了,不过这个优势可以当中下来休息休息。 不过这次没上次好玩,先从北京到乌鲁木齐3个小时,乌鲁木齐到伊斯坦布尔6个小时,伊斯坦布尔到巴黎又3个小时,真够折腾的,不过也是飞一会就下来走走。边检大哥还问,难道北京没有直飞巴黎的航班吗?   Frankfurt -Schiltach Frankfurt不作停留,直接下了飞机上火车到Schiltach, Schiltach 是黑森林北部的小镇,某人某天在哪里看到的,是非常静逸的小镇。这里就是在金齐河两岸随便溜达了。因为在LP关于Schiltach的内容半页纸的内容就是。 Schiltach -Heidelberg Heidelberg是旅游名城,但是这次城堡我是不进去了,看看老街,内卡河,哲学家小径,多给球子拍点照片。 城堡这样的地方就是适合在远处的山上进行观看,要进去游览的话还是要提前了解点历史知识的。 Füssen-Zugspitze -Füssen Füssen主要是作为去Zugspitze的一个中转地,同时也看看新天鹅堡。 楚格峰是德国最高山峰,在德奥边境地带。但是其实不高,还没九寨沟高呢。 在1000米海拔有一个冰湖,据说还不错。 Füssen-Berchtesgaden Berchtesgaden是当年希特勒待的地,你说这种地方能差吗?国王湖,鹰巢,魔法森林,Ramsau应该都是值得去走走的。 Berchtesgaden-Munich 买东西,好吃好喝,回家!

都是使用shell自建的命令进行读取,可实际的结果会有很大的差异。 我们先建立一个测试文件a.txt c a b c d #e f g 然后进行字符串自增的方式进行测试。第一个使用重定向<符号来进行读入文件。 c #!/bin/bash set -x WR="account " while read line do WR="$WR"" ""$line" done<a.txt echo $WR 最终我们看到输出的结果就是我们期待的 account a b c d #e f g ```c

  • WR=’account ‘ + read line + WR=’account a’ + read line + WR=’account a b’ + read line + WR=’account a b c’ + read line + WR=’account a b c d’ + read line + WR=’account a b c d #e’ + read line + WR=’account a b c d #e f’ + read line + WR=’account a b c d #e f g’ + read line + echo account a b c d ‘#e’ f g account a b c d #e f g

然后我们使用管道和while的方式进行读入,但是得到的结果却不是我们期望的c
#!/bin/bash set -x WR=”account “ grep -v ^# a.txt | while read line do WR=${WR}” “${line} done echo $WR
最终的输出为:c

  • WR=’account ‘ + grep -v ‘^#’ a.txt + read line + WR=’account a’ + read line + WR=’account a b’ + read line + WR=’account a b c’ + read line + WR=’account a b c d’ + read line + WR=’account a b c d f’ + read line + WR=’account a b c d f g’ + read line + echo account account

这样的方式,最终的输出居然只有“account”, 而没有别的内容,也就是只有我们初始化的那个内容,可打开调试我们可以看到明明最后一次自增后的结果是对的,可最终输出的值却不是我们想要的。 本来使用这种方式想处理a.txt这样的文本再传入给read,可最终结果既然不是我们想要的,那就用别的吧。 而重定向导入文件的方式是不能对文件进行在外部进行处理的,只能在while循环内部进行。   于是我们就用最后一个中for循环的方式来进行处理:c
#!/bin/bash set -x WR=”account “ for line in `grep -v ^# a.txt` do WR=${WR}” “${line} done echo $WR
最终的输出结果我们所期望的。c

  • WR=’account ‘ ++ grep -v ‘^#’ a.txt + for line in ‘`grep -v ^# a.txt`‘ + WR=’account a’ + for line in ‘`grep -v ^# a.txt`‘ + WR=’account a b’ + for line in ‘`grep -v ^# a.txt`‘ + WR=’account a b c’ + for line in ‘`grep -v ^# a.txt`‘ + WR=’account a b c d’ + for line in ‘`grep -v ^# a.txt`‘ + WR=’account a b c d f’ + for line in ‘`grep -v ^# a.txt`‘ + WR=’account a b c d f g’ + echo account a b c d f g account a b c d f g
阅读全文 »

公司有个redis比较大,同时又是跨IDC同步,但是最近发现一旦连接断了之后,好久都不能完全同步。 查看了一下log。 c \[12826\] 01 Apr 16:54:37.675 # I/O error trying to sync with MASTER: connection lost \[12826\] 01 Apr 16:54:38.555 * Connecting to MASTER 10.x.x.x:6379 \[12826\] 01 Apr 16:54:38.555 * MASTER <-> SLAVE sync started \[12826\] 01 Apr 16:54:38.621 * Non blocking connect for SYNC fired the event. \[12826\] 01 Apr 16:54:38.692 * Master replied to PING, replication can continue... \[12826\] 01 Apr 16:54:45.229 * MASTER <-> SLAVE sync: receiving 390598473 bytes from master 通过info观察也是一直去master上同步,有时候看着马上就完成了,就报以上的错误。 以前使用redis很老的版本2.4一直都没有这样的问题,自从换了2.6以后才出现这样的问题的。   放狗查了下原来是 client-output-buffer-limit  这个参数导致的。默认是: ```c
client-output-buffer-limit slave 256mb 64mb 60

soft limit是一种依赖于时间的。 比如一个soft limit被设置为32MB 10s, 那就意味着当client的output buffer超过32MB,并且持续10秒钟,那这个连接就会被断开。 默认值就是hard 为256M, soft为 32M 60秒 普通客户端的默认limit为0, 就是任何时候都没有limit,因为普通的client使用阻塞来实现发送命令和接收完整的返回,在发送下一个命令之前,所以在普通的client的情况下关闭连接是不合适的。 但是要特别注意pub/sub客户端,这种方式一次处理和输出的数据都会特别大。 我们可以使用config set 来进行设置,但是注意使用config set的时候不支持MB,GB 这样的单位。   下面这个是redis官网的一个具体说明: [http://redis.io/topics/clients](http://redis.io/topics/clients "http://redis.io/topics/clients")

Output buffers limits
---------------------

Redis needs to handle a variable-length output buffer for every client, since a command can produce a big amount of data that needs to be transferred to the client. However it is possible that a client sends more commands producing more output to serve at a faster rate at which Redis can send the existing output to the client. This is especially true with Pub/Sub clients in case a client is not able to process new messages fast enough. Both the conditions will cause the client output buffer to grow and consume more and more memory. For this reason by default Redis sets limits to the output buffer size for different kind of clients. When the limit is reached the client connection is closed and the event logged in the Redis log file. There are two kind of limits Redis uses:

*   The **hard limit** is a fixed limit that when reached will make Redis closing the client connection as soon as possible.
*   The **soft limit** instead is a limit that depends on the time, for instance a soft limit of 32 megabytes per 10 seconds means that if the client has an output buffer bigger than 32 megabytes for, continuously, 10 seconds, the connection gets closed.

Different kind of clients have different default limits:

*   **Normal clients** have a default limit of 0, that means, no limit at all, because most normal clients use blocking implementations sending a single command and waiting for the reply to be completely read before sending the next command, so it is always not desirable to close the connection in case of a normal client.
*   **Pub/Sub clients** have a default hard limit of 32 megabytes and a soft limit of 8 megabytes per 60 seconds.
*   **Slaves** have a default hard limit of 256 megabytes and a soft limit of 64 megabyte per 60 second.

It is possible to change the limit at runtime using the [CONFIG SET](http://redis.io/commands/config-set) command or in a permanent way using the Redis configuration file `redis.conf`. See the example `redis.conf` in the Redis distribution for more information about how to set the limit.
0%