The Mirages

樱桃沟夹事

周日进行了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.

很明显现在的问题不是技术的问题,而是沟通和如何推卸责任的问题。 在我们制定方案的如何来尽可能的保护自己,这个只有政治斗争强的公司才这样吧,大家无非就是希望把事情做好,至于你怎么耍阴的,我管你呢。   当然考虑问题的角度确实如大猫说的,要从整个集团的角度来考虑一下。可是这个难度很大啊,而且要协调各个部门之间的关系,同时还不能让自己底下的人吃亏,大猫其实也够不容易的。   我们能做的就是尽量把方案做完整,预算的时候多加点capacity进去,也省得让自己最后受委屈。看来大猫手里的财务权利其实也就那么回事啊。

一开始看激动,还下载了那个APP。然后环保部长还盛赞这个片子拍的好。

可改革的阻力很大,这过程中的既得利益团体的实力也很强大,上线第一天就有对柴静的各种口诛笔伐。然后视频上线几天就没了。然后各种讨论的声音也没了。

但是大部分普通民众是欢迎这样的,不然那几天的微信朋友圈也不会被这个刷屏。

可这些山呼海啸的声音没有一个是面对正面问题的。

新的环保部终于下了观测结果是北京的雾霾主要是汽车导致的。在我看来是四点:一个是排放标准,绝对数量,综合路况,燃油标准。

为了鸡的屁,这些都可以牺牲。而我们平均得鸡的屁水平其实一直在倒退啊。

阅读全文 »

内网有个机器有2个网卡,并且是不同的网段和网关。 network 其中的B服务器有2个网卡。这个时候我们就只有默认网关为10.1.1.1 那查看路由表就是如下

1
2
3
4
5
6
7
[root@localhost ~]# ip route show table all 
10.1.1.0/24 dev eth0 proto kernel scope link src 10.1.1.247
10.1.2.0/24 dev eth1 proto kernel scope link src 10.1.2.239
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev eth1 scope link metric 1003
default via 10.1.1.1 dev eth0
[root@localhost ~]# ip rule show 0: from all lookup local 32766: from all lookup main 32767: from all lookup default

这个时候我们可以发现,从1网段到1网段来回都没有问题,2网段来回也没有问题。但是从server A到server B的2网段是不通的。 因为你去到2网段后,server B的默认路由是10.1.1.1。 所以我们需要设置server B上,来自哪个网卡的路由就从哪个网卡出去。这样server A到server B的2网段就没有问题了。 首先添加2个route table

1
2
$ cat /etc/iproute2/rt_tables
# # reserved values # 255    local 254    main 253    default 252 lan1 251 lan2 0    unspec

然后再添加ip route和ip rule

1
2
3
4
5
6
ip route flush table lan1
ip route add default via 10.1.1.1 dev eth0 src 10.1.1.247 table lan1
ip rule add from 10.1.1.247 table lan1
ip route flush table lan2
ip route add default via 10.1.2.1 dev eth1 src 10.1.2.239 table lan2
ip rule add from 10.1.2.239 table lan2
阅读全文 »

东野圭吾最近很火啊,说是文艺青年必看的,一不小心我也成文艺青年了。
 

算是科幻小说吧。具体内容就不剧透了。 本来以为每个章节都是单独的故事,可看到第二部分发现其实都是互相有联系的,而全书的结局特别符合东方人的思想,最终这三人还是救赎成功的。

故事中的几个人其实除了最后那位,都是走了一开始选择的道路,并没有因为未来人的指导而去走捷径。

虽然没走捷径的各位最终的结局都不怎么样,可至少他们的选择的道路是自己内心真正想要选择的。

而他们的烦恼其实在他们发出信的时候已经有自己的答案了,别人再怎么说其实并没有什么意义的。

正如歌词里唱的“每次都想告诉你,别再为过去伤心。越过黎明的静寂,总有阳光在等你。” 每个人都有属于自己的一条路的。

阅读全文 »

小艾来家也有几个星期了, 趁着春节写一个使用小记吧. 图就不秀了,780的美图网上太多了。   首先它的体积比我想的要大要高.。直径35厘米, 高的话正常是8厘米,但是最高可以到10厘米。所以大家的家具尽量都要大于这2个数字哦。   底部就是两个大轮,一个方向轮,吸尘器,侧刷,集尘器。 这些现在几乎所有的智能机器人都是这样的。 th 说点看参数看不出的东西吧。   定时功能,每周的每天都可以定时不同的时间来进行清扫,因为这个玩意的动静还是有点大的,所以在上班期间让它工作比较好。 智能充电: 它一次工作的时间比较长,如果房间大就需要4个小时,所以它会在快没电的时候自动回来进行充电并继续工作。 智能爬地毯: 我们家里很多地方都有地毯,有些跟地面贴合度高,小艾会自动换各种角度爬地毯去,有些可能地板比较滑,它也会尝试各种角度去爬,有些可以成功过去,有些就会带着小地毯跑。 防止绕线: 这个就看到我们家的空气净化器的线,结果它最后把那个空气净化器的线就带走了,然后就继续吸地去了。那个餐桌腿里只要它能进去也都能很顺利的跑出来。 虚拟墙: 这个至今还没用上,家里小暂时还不需要这个。 规划线路: 这个还是没看出来什么算法,基本算是勤能补拙这样的水平,一个地它经常会吸很多次,应该也不会记忆你家里房间的样子,但是它会尽力尝试进入每一个它能进的地,有时候还会尝试多个角度去进入,这个应该跟爬地毯那个是一样的。 关于如何清理: 每次打扫完必须清理集尘盒,而轮子和刷子上的头发也要进行清理。每扫三次就要清理下吸尘的头发,主要是轴那边。基本问题不大。 还有原装是再送一套耗材的,但是那个锂电池没有再送,基本我们家全扫一次需要充2次电,我们家建筑60平米,地毯面积50平米,大家可以计算下的。而锂电池的充电寿命一般是1000次以上,再高估计也不大好用了,所以电池寿命也要考虑,不过看过京东还都有的卖,所以后期使用成本也不会很高。   最后说下,海淘的780的电压是110v的,所以还需要修改的,有钱的土豪可以买880,功能更多,电压也是全球电压。

0%