Shell's Home

两台机器上TCP状态不一致的排查

Feb 24, 2017 - 1 minute read - Comments

简介 TCP状态不一致是一种常见故障。双方的机器上列出连接,其中一方连接存在,另一方则没有任何连接。如果连接存在的一方有数据正在发送,则存在两种可能性。一种是对方收到数据报文后发现这个报文没有socket对应,于是返回一个RST,导致连接存在的一方连接直接消失。这种情况下问题很难察觉。另一种是对方(或者中间方)收到报文后直接丢弃。发送方经过一定次数(tcp_retries2,一般来说就是15分钟左右)的重试后,认为连接已死,连接会自动消失。如果tcp连接打开了keep-alive,经过7200s(具体值看socket设定),即等于有数据发送。后同。 一般来说,有三种常见理由: RST报文丢失。在RST报文丢失时,发送方连接直接消失,接收方由于没有任何消息,因此连接始终存在。 FIN报文丢失。FIN报文丢失和RST报文丢失情况类似,但是发送方会进入FIN_1状态,经过一定次数重发(tcp_orphan_retries)无回应后连接消失。 内核错误。 排障时,应当首先考虑RST报文和FIN报文丢失的情况。 排障 首先应排除三种常见场景: 场景一:接收缓冲区满。 当接收缓冲区满时,FIN报文会直接丢失。这常见于接收方处理上下文堵死导致不再处理新数据的情况。特征是发送方可以观察到一定量的FIN_1状态链接(常见于接收方不处理fin报文的情形下),接收方缓冲区满,可作为特异性标识。 确证方法:在接受方使用ss观察接收缓冲区。如果接收缓冲区极大而且基本不下降,配合发送方可见FIN_1状态,可以断定此场景。 场景二:RST报文丢失。 当中间有IDS之类(F5/SDN/firewall)的网络设备时,RST报文可能丢失。特征是发送方socket直接消失,接收方socket无任何异常。检查可见netstat -s中reset的发出和接收状况不一致,但是无法作为确证标准。 确证方法:双方抓RST包,无法对齐。 场景三:FIN报文丢失。 情况和场景二类似,网络中有IDS类设备。但是丢失的报文是FIN。这导致发送方可见FIN_1状态,接收方缓冲区没有异常。 确证方法:双方抓FIN包,无法对齐。 内核错误导致的TCP状态不一致很少见,建议升级到最新内核后重测。如无法复现可以合理推测这种可能性,但是无法确证。确证需要systemtap。 PS:FIN_1状态同时也受到tcp_max_orphans的限制。如果tcp_max_orphans被设定为0以清理TIME_WAIT状态的情况下,可能导致FIN_1状态很难察觉。可考虑恢复tcp_max_orphans或者干脆直接抓包诊断。

Disney Shanghai信息

Feb 20, 2017 - 1 minute read - Comments

这篇都不是攻略了,因为实在太“略”了。简单来说,就是我和老婆去了一趟Disney。 很近,从16号线换11号,大概半小时就能到。路上有一堆人卖雨衣什么的。别管他们,园区里雨衣10元一件。而且以我的惨痛经历来说,雨衣并没有什么卵用。雨衣只能防住上半身,我当天穿了一件冲锋衣,也能防住。可TM当天一个浪过来,直接打湿了大半裤子。这就尼马尴尬了。于是我就去他们的厕所里,弄了一堆擦手的纸巾擦了一下——半干。另外还有两个小伙子也是类似情况,纸巾居然瞬间就见底了。可见这种现象应该是相当频繁的。然后我就带着半湿的裤子在冬天的乐园里继续玩。。。 我的建议是。穿防水裤,并且尽量避开上去的那两个位置(就是开口最大的两个)。东西放在身上的时候,最好用塑料袋包一下。毕竟凡事都有万一。。。 乐园里的简餐没有传说中那么贵。当时一个牛肉卷(就是和老北京鸡肉卷很像的那种卷饼,里面是五方嫩牛的内容物),大约是55元。我没记错的话,五方嫩牛也要20多,而且这还是号称全中国最良心餐饮企业之一。在正餐餐厅里随便吃一点大约是50-70。我们点了个烤猪肋排。份量很大的三根肋排骨,酱汁非常入味,也只要98。我觉得在上海随便一家中档餐厅里吃饭大概也就是这个水准了。但是有一点很奇怪的是。我们中饭和晚饭在两家餐厅吃,两家餐厅类似价钱的食物量和味道可差了好多。中午在海盗湾吃的,味道和量都不错。晚上在Peter Pan旁边的餐厅,猪肉拉面能淡出鸟,量也明显小一截。。。 另外就是关于排队问题。我们去的几个地方都是一小时一小时的排队,玩其实也就几分钟。从性价比来说非常不值得。最好能搞到快速通道券。另外就是在晚上的时候,很多项目排队时间会突然缩短。我本来以为随着有些项目关门,时间应该变长的。老婆说这是因为熊孩子们被爸妈抓走了的缘故。反正晚上6点多的时候,急速光轮排队时间已经从巅峰的两小时降到15分钟了——基本就是走通道的时间。我们只在通道尽头等了两三分钟就被弹上了轨道。。。 晚上和朋友聊这事。我表示我头次知道tron原来是Disney的IP。他说他更无法接受星战被米老鼠收购的事。确实,一只米老鼠说,I’m your father,然后掏出光剑来开打。想想也诡异了点。。。 最后就是关于季度卡。我们很晚才知道季度卡的事,其实早知道的话会直接买季度卡。以季度周日卡为例。820左右,能去12次。就算各种因素不能每个周日都去,跑个六次不算多吧。合每次150不到。相当于花半小时跑一趟游乐园,150一次在里面玩到爽。而且如果玩这么多次的话,其实甚至可以等下午三点多出门,吃个晚饭去排15分钟一次的急速光轮,两个小时刷个6轮。。。 当然,我们得知的最新消息是,最近的季度卡到3.31日截止了,下面的活动没有消息。无论如何,对于住的近的人来说,这种折扣值得关注。 最后是一个个人问题,有人知道哪里有卖Disney的花栗鼠纪念品么?我们转了一圈只找到松鼠的。

广东游记

Feb 5, 2017 - 1 minute read - Comments

广东其实没啥游记可写。论大小,这是个大城市,去过的人成千上万。论各种景点和攻略,在地的人足足可以写出一本书来(我倒是一直很想写一本上海攻略)。论美食,那更是高明到不知道哪里去了。我一个外地人,才去玩几天,有什么可写的呢? 所以这次就简单记录一下广东的一些吃喝和见闻。也许不是顶好,您也就别挑剔了。这也就是一只懒猫春节没处去,随便跑了有美食的地方。如果您有什么好的馆子可以推荐在下面,一是方便读者,二是我们也许下次还有机会去。 第一天下飞机,先去的西朗。飞机是晚班的,到了睡一晚,第二天坐广佛线去的祖庙。 话说广佛线真是个好东西。要是有地铁能把上海苏州直接打通的话,那就方便的很了(据说规划中)。如果能再打通杭州的话,就更不得了了。高铁也很方便,但是一来票价很贵,二来要提前买票准点候车。哪像城铁这样说走就走,而且运力极大。这也亏得城市之间距离比较近,中国基建能力又足。 祖庙那里没什么好说的,吃了一点双皮奶,鱼角,糯米鸡什么的。看了一场醒狮,又去岭南天地吃了一碗毋米粥。本来想吃水蛇粥,结果水蛇没有,换了牛展粥。味道也相当不错。 下午去了一趟梁园,一趟南风古灶,乏善可陈。 晚上我们去的另一家“行运楼”,价格略贵,菜量比较大。更适合多人去吃。我们都不够点他最著名的脆皮烧鸡,只能点了半只葱油鸡。味道比喵烧出来的好。 晚上出去吃了个甜品,一杯冻鲜奶,一碗猪脚姜。冻鲜奶就是冻鲜奶,就是冰的牛奶,只是说广东这里都是用的水牛奶。我吃不出有什么区别。猪脚姜就是猪脚姜,就是猪脚烧姜。我不是很吃得惯。 第二天直接去的西樵山。我本来以为爬个山而已,没想到人越来越多。后来上去一看,山顶有个宝峰寺,还有个南海观音。这就对了。才过年,拜佛的地方能不人山人海才奇怪了。我们对拜佛没兴趣,对修建时间小于500年的佛教景观更没什么兴趣。所以直接从旁边岔出去,去桃花林看桃花,茶花了。 在路上的村子里有农家乐。我们看时间差不多了,素斋那里都被游客堆的人山人海的。索性在农家乐这里吃点算了。没想到这里的豉油鸡是我这几天吃的最对胃口的一顿。无他,肥鸡重油,豉油入味,对上北方人胃口,自然吃的很香。我几乎一个人吃掉了一整只鸡,猫在旁边撩了一些。 晚上回来,我们去的天海酒店。这家据说是佛山本地人吃的,价格便宜上一大截。其中一道烧钳鱼(又是重油重口味),还有一道煎青椒,味道不错。青椒不辣,去子,内部塞上鱼滑,再煎过。这个做法很特殊,别处不是很常见。 第三天早起去了顺德。顺德对吃很讲究,果然不假。我们去的时候不知就里,先看了清辉园再去吃饭。大家居然都收市了。好歹找了一家酒店,在西餐部吃了一点茶点,都不是顺德本地菜,十分可惜。其中一道沙姜蒸凤爪,和普通广式的凤爪味道不同,反倒有点像肉骨茶的味道。我们就在推测,肉骨茶料中就有山萘。另外就是去民信仁信转了转。两家双皮奶老店果然不同凡响,整个下午店里都是人头满满,根本没地方坐。最后好歹在美食街仁信的一个小店面里吃了一碟萝卜糕,一碗双皮奶。实话说我对双皮奶这种东西一直很腹诽,总感觉像是奶膏一样,不是很好吃。 第三天晚上直接回了广州,顺德到广州的高速很快,一个小时不到就下了车(订正一下网上的资料,有说两个多小时的)。晚上就在沙面的陶然轩里面随便吃了一点。他们的菜不是很有特色,碟子和茶具倒是这两天里看到最好的一套。旁边的柜子里还摆放着老的外销瓷。 第四天就在广州随便逛了一圈,石室圣心大教堂,南越王墓,北京路,还有陈家祠。这几个自己去就行,没有什么好讲。晚上我家喵念念不忘顺德美食,结果果然有了回响。在沙面有一家“有腥气”,算是顺德菜。我们在里面吃到了拆鱼粥,还有煎鱼嘴。鱼嘴更像是鱼头,也不知道正宗的顺德菜是不是这个样子。据喵说应该是小鱼。拆鱼粥很鲜。 好了,这几天吃的美食大概就这些。如果你有什么推荐,请在下面留言。注意请不要推荐一些特别知名特别贵的酒店,我知道他们好吃,但是我不去是有原因的。一个是口味可能和普通市民口味有所区别,另一个就是穷。我真心的建议大家只要记住前一个原因就好,推荐我一些符合当地人口味的餐厅——同时也会便宜一些。

phuket旅游和潜水指南

Jan 1, 2017 - 1 minute read - Comments

大致行程 简单来说,就是带着我家猫去普吉岛玩玩。一天潜水(diving),一天浮潜(snorkeling),一天jungle fly,剩下的时间就是吃吃吃买买买。 当然,执行下来完全不是这么回事。基本上每天都是满的,都是各种行程搭配。虽然就住在Jungceylon隔壁,却基本没有买买买的机会。吃吃吃倒是问题不大,各处都有不错的食物。不说精致,便宜好吃是起码的。更何况Jungceylon后门还有Banzaan Fresh Market,门口一到晚上就大开夜市。 哦,还有说到Jungceylon,这次来了才发现,这不就是上次逛的那个大市场么?连我拍某个卖玩具妹子的哈根达斯前面的四面神像都没变化。然后顺便回翻了一下游记,发现上次住的那个Blue Marine,就在我们住的地方到FantaSea的中间,能路过。 好么,净是熟人。 潜水行程 按照我的计划,第二天的行程是一整天的潜水,我家猫就去玩冲浪。 这次由于是圣诞-元旦行程,因此我比较担心人多,所以提前在网上订了行程。潜店选择是这家,原因是比较近。其实还有更近的All4Diving,在步行街上还能看到他们。但是事先咨询的结果,他们的船都是固定的,那天只有Phi Phi岛的行程。而我对Phi Phi岛的潜水又不是很感兴趣,所以还是选择了thailand divers。 他们家别的还不错,有在线的客服帮你讲解和指导,能通过paypal来支付费用,基本上是挺方便的。只有一个不大不小的问题——他们没告诉我,不能在游艇上付费。所以我付了一个定金后,本来打算在游艇上支付剩余费用。结果他们前一天下午写信过来告诉我现在就必须付钱。我说我人TM在FantaSea Show现场,手机都马上要寄存了,付个毛啊。他们说那没办法。然后就在FantaSea Show手机寄存排队的时候,赶紧输入各种信息来付账。一堆信息,还全是信用卡相关的,一个不留神就容易出现盗刷,手机上又很难查证。所以搞的非常紧张。这点让我感觉很不爽,其他的还算满意啦。 潜水船没什么好介绍的,双层普通潜水船,上层观光,下层内舱,后舱是四排气瓶,最后从尾部的平台上下。尾部有一个清水桶,供清洗相机什么的。两个淋浴头两个花洒,可以简单清洗或者下水前做个防雾什么的。比较有意思的倒是当天的同船。小一半是欧美人,我也分不大清楚都是哪里的。潜伴的小哥是东欧的,怀疑是俄罗斯人。因为潜导是个波兰妹子,和他用俄语聊了两句。好歹也去过一圈俄罗斯,虽然听不懂,但是大概也能分的出。船长是个泰国人,长的像是神盾里面那个独眼局长。戴一只耳环,说话泰国腔,但是很风趣。另一半则是东南亚人,以日本居多。一个很瘦的日本姐姐,拿一个超级巨大的水摄装备。三个很卡哇伊的日本妹子,清一色的涂着指甲,戴着tusa家的潜水表,估计是几个认识的朋友一起出来玩。一个日本超级帅哥,和一个没那么超级的帅哥,英语很流利。还有一对日本夫妻。中国人也不少,一对香港人,看样子是情侣或者夫妻,但是我不确定。说来好笑,日本帅哥以为船上就他们几个日本人,所以一群人在那里用日语聊天。偏偏我不会日语但是能听个大概,所以坐在旁边听他们聊斯米兰船宿。但是香港夫妇聊什么,虽然是中文,我可就完全听不懂了。另外还有三个,两女一男,看来是出来玩的朋友。男的自我介绍是教练,福建人,从新加坡过来的。 潜水基本情况简介 本次潜水主要在Andaman Sea水域,Chalong到Koh Phi Phi之间。环境洋流South to North,估计速度在2-4knots之间,部分区域可见极端高速洋流。天气晴朗(回程有雨),海面浪高0.5米左右。海水基本清澈,能见度10-20之间。 Koh Dok Mai 7° 47.786’ N, 98° 31.85’ E Max: 20.4, Avg: 13.4, Vis: 15, Current: about 1 knot 离码头大约20km的Andaman Sea洋面上,一个小的突出海礁。下面有垂直的海底岩壁。我们从南面下海,向东逆时针顺流绕行。原本计划是放流到北角升水,但是船长担心要在大流里升水比较麻烦,就改为顶流绕回南角升水。水下洋流还算平缓,水面流比较大。下水后可以见到成群的褐色鱼群形成瀑布,由于鱼群遮蔽岩石,无法估计规模。可见海兔(nudibranch),海鳗(moray eel)。本次潜水因在未知海域首次潜水,配重6kg,RMV在15.7左右。 King Cruiser Wreck 7° 48.148’ N, 98° 38.599’ E Max: 25.6, Avg: 16.5, Vis: 10, Current: 3-4 knots 在Koh Dok Mai向东约15km的洋面上,一艘1997年沉默的双体渡轮。船体南北走向,潜水计划是从北面的浮标下水,抓绳上下,在船体中部游览,运气好的话可以到达舰桥。由于大深度潜水,需要严格安全停留。高速洋流环境下要稳定停留,最后必须回到北面浮标处升水。因此SPG+Computer双计数,NoDec<10mins ||

相册

Oct 30, 2016 - 1 minute read - Comments

2016俄罗斯 2016新加坡 2016大马 2016三亚 2016泰国 2016世纪公园 2016云南 2016黄山 2015印度 2015山西 2015山东 2014北海道 2014新疆 2014潮汕 2014良渚张家港 2014世纪公园 2014长白山 2013甘肃 2013西藏 2013台湾 2012四川 2012西安 2012maldive 2012puhket 婚纱照 2010厦门 2009 2008 2007南京 2007 2006香港 2006牛栏山 2006 2005无锡 2005

贝加尔湖旅游指南

Oct 11, 2016 - 1 minute read - Comments

首先说明,这是一篇旅游指南,里面都是旅行相关信息。想看游记的可以退散了。废话不多说,上干货吧。 贝加尔湖(Baikal Lake,俄文:Озеро Байкал)位于俄罗斯的Irkutsk州(俄文:Иркутск)。一般来说,会直飞Irkutsk机场,然后再过去。Irkutsk在东八区,和北京没有时差。整个地区的通行货币是卢布(RUB,有时能看到py6一样的文字,руб,那个是俄语的卢布),兑人民币(CNY)汇率大约是1:10(1CNY = 10RUB)。整个地区通行语言是俄语。以我的体验来说,英语使用率比中国还低。这一路也算是商业旅游线路了,除了导游外,能流畅使用英语的人只有两个。大部分人只能勉强使用几个英语单词,好的可以说一下短语。所以在这个地区旅游,需要做好语言不通的准备。 这里我推荐google翻译。google翻译除了能够打字翻译以外,还能将图片上的文字实时的翻译出来(不过似乎只限于打印体)。这在买东西/看招牌的时候非常管用。不过就我测试,这个好像只能在俄文和英文间互相翻译。幸好以我和喵的英语来说,没什么大区别。当然,除了google翻译以外,最好还准备一些简单的俄语单词和沟通方法(比手画脚),以备不时之需(例如没有网络情况下无法翻译)。 我们已经提前买好了tele2的电话卡,在整个俄罗斯期间都可以顺利的上网和打电话,因此并不特别担心通讯问题。不过在前往Olkhon Island(俄语:Ольхон)的途中没有信号(是的,途中无信号,岛上反而有信号),有些偏远地方和地下室也是没有信号的。俄罗斯的手机很奇怪。区号是007,我们都是俄罗斯手机号,互相拨打是不加区号的。但是我们拨打别人电话的时候要加8,别人拨打我们电话的时候不要加8。非常复杂,容易搞错。我至今不理解为什么。 去往俄罗斯之前,最好准备好电话卡或者其他上网设备。这样可以查询在线翻译,避免一些尴尬问题。同时,俄罗斯有时比较冷(但是最热的时候居然有30多度),所以一定要注意保暖。衣服最好是大衣+室内穿着的组合。因为很多地方有暖气,所以进入室内后需要脱下大衣。不少景点有专门的衣帽间,可以帮你把衣服挂起来。挂的时候注意提前把值钱物品和证件从衣服里拿出来。 我们是报的跟团游,所以无需办理签证。后来我查了一下,中国公民团体游可以15日内免签。自由行乘客还是必须照旧出签。Irkutsk机场的出入境机构动作不是很快,普通游客可能要在移民大厅里面等很久。 Baikal以自然风光而闻名,最好的季节在冬季和夏季(是的,我们去的时候反而是淡季)。Irkutsk旁边有个小镇,叫做Listvyanka(俄语:Листвянка),大约有一个多小时车程。这个小镇在Baikal Lake和Angara River(俄语:Река Ангара)的分界口附近,是Baikal Lake的重要码头,以鱼市,潜水和观光闻名。我本来在Listvyanka报了潜水(干衣)。结果下雪,潜导在船上,没回来,就没潜成。同行的一些人报了小火车的线路,从Irkutsk坐车,换小火车沿着Baikal Lake转半圈。中间会停靠几站,让你下去拍拍照。然后再上车继续。火车最后会停靠在Baikal Bay(俄文:Байкал),换渡轮游览Baikal。最后也是从Listvyanka下的船,坐车回酒店。据去过的人说挺有趣,有兴趣的可以试试。 我们住在Irkutsk和Listvyanka之间的一个叫Elochka(俄语:Елочка)的松林别墅里面(说白了就是郊外,便宜)。出门100米就是Angara River的支流,窗外就是松树。路上能看到松鼠,麻雀和啄木鸟。一点都不怕人,赶都赶不走。有的时候松鼠还会跳到你身上来。但是基础设施超级差。没有饭店,只能定时去吃食堂。没有车来返市区,只能打出租。出租还算便宜,丰田的小皮卡,开到市中心半小时,也只有500RUB而已。 Irkutsk基本没有出租扬招,都是打电话预订出租,而且都是俄语。但是你可以在酒店或者游客中心找到会英语的前台帮你预订。室内交通主要都是Bus。同时,室内还有几条有轨电车在运行,有兴趣的可以试试,单次乘坐15RUB左右。 第三天开始,我们就从Irkutsk出发,上Olkhon Island。从Irkutsk到Olkhon Island大约是4-5小时车程,路上很多地方没有信号。窗外是大片的寒带草原,有的地方是草原和西伯利亚针阔混交林过渡区。地势连绵起伏。有的地方一马平川一望无垠,有的地方则高耸陡峭。但是战斗民族的修路很有特色。我们正常修路都是盘山,路不会是直的,以免刹车出问题。他们的路是笔直从高处冲下,又长又直,像是水上公园的滑梯。 去Olkhon岛的路上,就到了Buryat人(俄文:Буряад,蒙古文:ᠪᠣᠷᠢᠶᠠᠳ)的地盘。其实Baikal Lake应该是在Irkutsk和Buryatiya的中间。Buryat是蒙古的分支,原来称呼为林中百姓,或不里牙惕。当地特色食物是什么?包子!猪肉和牛肉混合馅,加上洋葱。吃的时候要加酱油,然后吸出汤汁,再吃包子。大致吃法和小笼包非常类似。 上Olkhon岛之前要坐渡轮,渡轮是人车混载渡轮。下船之后要坐当地特有的一种老式车“土坦克”(УАЗ)。岛上的路说是烂,不如说根本没有路。前面的车一压,就成了路。不过即使如此,这路况评价起来也好过去珠峰大本营的时候。 岛上地势东高西低,南缓北陡。北边地势高耸,都是高高的悬崖直冲入海。西边是个平缓的坡,Khuzhir村(俄语:Поселок Хужир)和Shaman Rocks(俄语:Шаман Скалы)就在这个地方。Shaman Rocks是萨满教的圣地,也是Olkhon Island的地标。岛上的基站架设在Khuzhir村,所以远离村子的地方是没有信号的。村子里面有一个小教堂,一个学校,一个博物馆,一个邮局。 他们的主路叫做ul Baykalskaya(俄语:Байкальская ул),东西走向,意思是贝加尔大街。实际上是一条尘土飞扬的烂路,而且没有铺设任何路面。西边直冲码头,铁栅栏上有个红色的五角星。导游说是因为原来这里是个捕鱼和加工厂,村子是围绕着鱼场建的。后来捕捞过量产量减少,加上自然生态保护。鱼场就被废弃了。 主路的中心是学校和邮局,博物馆在学校的里面(是的,里面)。我们去的时候翻译了一下告示,似乎是周末不开,于是就没进去。邮局就在学校南边一点。你可以在村子里买到各种明信片,然后在邮局购买邮票邮回来。到中国的邮费是35RUB。 博物馆西边一点,有个挺大的商店,店主是个亚洲人长相的女的,我怀疑是蒙古族(Buryat)。如果你到这家店的话,可以买一点鸡翅膀吃。我不会说俄语,所以不知道是什么的肉。不过我怀疑是火鸡肉。很好吃。同一家店里面还有格瓦斯(俄文:KBAC)。你可以稍微买一点尝尝。我家猫说和中国的版本差异很大,她喝不惯。 村子里有各种奇葩项目。例如坐船出海,或者坐飞机(是的,飞机)。还有更常见的骑马和租自行车环村。不过现在是淡季,很多项目终止了。我们打听到有船,但是看湖面上波涛汹涌,回忆了一下Koh Tao上坐大船还被摇到吐了的恐怖,再看看他们的船的大小。我们明智的放弃了这个活动。 常规旅游线路是南线和北线。北线包含在行程里面了,南线自费。我们跟着团去了北线。印象比较深刻的就是合波角(Cape Choboi,俄文:Мыс Хобой),整个岛的最北边。风大的能把人吹跑。我这么重的体重,居然有的时候控制不住会被吹的斜迈一步。另外就是午餐野炊的时候司机烧的鱼汤,非常鲜美。 这里特别说一点,Olkhon Island旅游始终是有比较大的生态争议的。主要是垃圾处理和当地居民违法使用木材。具体可以看这里。如果你对生态方面有特别的顾虑,请考虑这些问题。 我们在Olkhon Island呆了两天就又回到Irkutsk游览,下面就是一些Irkutsk的游览建议。Irkutsk比较市中心的地方在Spasskaya Tserkov(俄文:Спасская Церковь)附近。另外就是马克思大街(Karla Marksa St,俄文:ул Карла Маркса)和列宁大街(Lenina St,俄文:ул Ленина)。我们在两者交界的Figaro吃过一次午餐,两个人吃了3000RUB多,还是挺贵的(对当地物价来说)。沙拉量极大,两个人吃一份就够了。浓汤香气扑鼻,加上蒜香面包让人胃口大开。煎鱼和羊排都很上品。比起上海来说,到确实不算贵。毕竟上海要认真吃一顿,也差不多要这个价钱。 不过Irkutsk的中国菜就糟糕很多了。我们在ul Litvinova(俄文:ул Литвинова)吃的一家China Town Cafe(什么鬼),感觉上就是用马列主义指导的中国特色社会主义实践。在ul. Gorkogo(俄文:ул. Gorkogo)吃的Золотой гусь感觉上也差不多。搞笑的是他们的标语上还写,10月1,2,3,国庆大酬宾,全场八折。反倒是在Sovetskaya St(俄文:ул.Советская)附近(我没仔细记,不确定是不是这里了)的一家非常小的餐厅,中国菜做的非常地道。我们进去的时候好像看到有几个留学生在那里吃饭。 Irkutsk的博物馆和教堂都很多,很多值得一看。在列宁像(Monument to Lenin,俄文:Памятник Ленин)附近就有三个博物馆。地方志博物馆(Irkutskiy Oblastnoy Kraevedcheskiy Muzey Biblioteka),美术博物馆(Irkutskiy Oblastnoy Khudozhestvennyy Muzey im.

生活中总有一些小精灵会来敲你的门

Sep 25, 2016 - 1 minute read - Comments

今天家里来了个不速之客。 当时我和老婆吃过饭,正在无聊,不知道去哪里玩,结果听到细微的敲门声。老婆开门出去看看,结果发现是一只灰色的短毛猫。老婆当时就觉得很惊奇,拿出家里放着的猫粮来喂猫。(我们偶尔会下楼喂流浪猫,所以家里留着一点猫粮)可是这只猫根本不吃,反而大摇大摆的走进来巡视了一圈。然后捡了个避光的地方一趴。。。 。。。这霸气,您还真不认生啊。 这是一只灰色的短毛猫,全身的毛蓬松水滑。到底是英短还是美短,很多朋友有分歧。我老婆说是英短。鉴于我的猫咪知识比她差的太远,所以我们就当是英短吧。下腹有一丛白毛,颜色还是雪白的。肚子鼓鼓的,像是怀了孕。见到猫粮根本不馋,可见平时吃的都是高档猫粮,而且才吃饱。进人家家一点都不认生,转了一圈,却不会去床上或者垫子上。 这是一只有主的猫,而且从家里跑出来的时间不会超过半天。 基于这点,老婆很快下楼问了一下物业保安。保安说刚刚一个女的抱了这只猫过来,说是楼里走失的。放在物业就走了。保安也没办法,就锁在厕所。谁知道厕所窗户有条缝,它又顺着窗户跑了。 这身手,一定是从家里偷溜出来的。 那问题就比较麻烦了。如果再抱给物业,想必溜掉的可能性是百分百。要找主人,也不是今天能解决的事情。所以老婆让我先问问附近的朋友,我们附近小区有没有什么地区性网站。自己则是骑车去了超市,买个小盆和猫沙给它先用着。我趁着老婆出门的功夫,发了一条推和一条朋友圈。然后才有功夫仔细观察这只猫。 而这只猫趁我们刚刚在那里忙的功夫,在房间里乱转,到处乱翻,还翻倒了老婆养的花。我赶忙拿扫帚扫掉泥土,以免踩的乱七八糟的。然后唠叨了它两句,结果它坐下来,扒着我的裤子喵了一句。 不知为何,我瞬间明白了它想干什么,跟着汗就下来了。 女王大人您行行好,我老婆给您买猫沙去了,买来之前可千万忍住了啊。。。 然后它继续。。。在家里翻箱倒柜,还差点碰倒了老婆养的插花(底下盛水的那种)。我没办法,只能一路跟着女王大人跑。然后不知为何,想起了英国内阁首席捕鼠官Larry The Cat和它的跟班们。可是这回我可没办法唠叨了,长的好看就是有优势。何况人有三急,猫想必也有。 正尴尬中,老婆回来了。于是我们赶紧放好小盆,铺猫沙。女王大人一点不客气的坐了上去,然后开始刨。。。 没有刨猫沙了。它不小心弄翻了猫沙盆,看来这个厕所对它来说实在是太小了。 等三急落定,它又在屋子里转了一圈。看它这次的行动,像是找地方休息,而且特别偏爱有顶棚的阴暗空间。我猜它原来一定有自己的猫房子,只是我们这里没有,只能委屈它了。等它拣了个好地方趴下,我们稍微合计了一下下面怎么办。从朋友圈上面的反馈来看,很多朋友都很喜欢这只猫,甚至有朋友看到找主人三个字就直接来和我们说要养。我们倒是不担心它的去处,可是从他的种种细节来看,原主一定很宠它,现在应该很着急。可是大晚上的,就算要找也无从入手,所以先让它住着明天再说吧。 结果这只猫居然主动跑过来和我买萌了。我摸了摸它的背,然后摸了摸它的肚子。这个,好像。。。老婆你来摸摸看?老婆也摸了一圈。用一种不可置信的语气说。好像,难道。。。是太肥了? 卖过一圈萌,这只猫突然抬起头来四处张望。老婆没反应,我却觉得不对。细听外面,有喊人名字的声音。我赶快让老婆出去问是不是在找猫。 是。 什么颜色的? 灰色的。 好好,有平时的生活照么?进来给我们看看。 有。 老婆一看,就是这只。 主人进门,大喊一声阿呆(还真是呆,2333),眼圈整个红了。然后猫就蹭了上去。 看来是正主。 主人说,他们家在我们楼上两层,这只猫是扒开窗户缝自己跑出来的(果然是惯犯)。他回家发现猫不见了,就赶快出门找,一直找到现在。结合我们知道的消息。这只猫不知如何的,到了一楼。刚跑出楼去,就被一个女的抱了回来,交给了保安。随后它就从保安的厕所逃了出来。又不知怎么的,到了我家这层。在我家门口探头探脑的敲门,给我们瞧了个正着。 主人说,它运气真好。中间只要差一点点,它就很可能回不来了。我说这得说我们运气好。 恩? 不是每天,都有一个小精灵,带着一个完美的故事来敲门的。

最近的阿里月饼事件

Sep 15, 2016 - 1 minute read - Comments

相信大家都听说过了,原帖在这里。阿里的声明在这里。我简单说一些吧。 拿js秒杀抢一堆月饼是不好的,当事人也承认这点。不过哪里不好大家观点不一。当事人强调“代码错误”和“好奇测试”。从安全部的职位来说,不是说不过去。不过很明显公司不这么认为。这事扯不上价值观,也不能扯上价值观。如果要扯价值观的话,你就得想想。让一群做渗透出身,见墙上有个圈都要不信邪钻一下的人,去一个对内需要严格管理和反腐的公司。这本身三观里合了哪一观?至于提UC的同学,更是完全没提在点子上。秒杀好不好主要看杀的是谁,也就是所谓的立场决定态度。这才是核心价值观。其他价值观与此冲突者无效。 这件事本身是公司内务处置,事情还得回归到公司规章制度,岗位职责和合同上去。 先说最后一个被开掉的人。我不知道阿里的安全岗位有没有对内安全职责,但是一般来说,安全岗位是可以进行内部渗透的(而且这是岗位职责)。你雇了一个警卫过来让他负责安全,就不能因为人家试着从墙角的洞里面钻进来就把人家给开除——那是人家的工作。只是安全渗透通常需要协调很多事情,例如是否对线上造成影响,是否需要通知当事部门。最后那个哥们显然是没有经过协调。不过从事后并没有付钱来说,还是可以认定不是冲着月饼去的。因此事后有没有付钱这点非常重要。当事人讲法是没付,阿里的声明中未提到。 如果确实没付钱,看到内部秒杀系统似乎没做反刷,写个脚本测试一下。我不知道你们管这叫什么,反正我管这个叫内部测试。这最多只能叫做工作协调有问题,既扯不上价值观,也不违反大部分正常公司的规章。当然,阿里也有可能在安全组规范里面写明了——未经备报批准不得私自进行内部渗透。那这就叫活该了。只是如果安全组有这条规范,我很怀疑内测到底能测出些什么玩意来。你看,按照规范要求,你需要一个个产品线的和对方的老大去谈,获得许可后测试。可是基本最新的,出漏洞可能性最大的系统,全都是要求赶紧上线,没时间全面考量安全性的。可黑客不归阿里的安全组规范管啊。 前面一个哥们的行为则更不好说一点——他确实是冲着月饼去的——一盒。只不过由于程序故障,所以造成刷了一堆月饼出来。所以这里是两件罪——用脚本刷月饼,刷多了。 脚本刷月饼是不是道德,最近有一堆朋友反复论述过了,我这里就不赘述了。在我眼里看来,用脚本去刷一盒月饼不能叫不道德。如果自动化脚本代替人操作就能叫不道德的话,你把密码存在浏览器里面,不亲自填写登录信息是不是应该叫欺诈?你看,银行让你设定密码,是希望你(这个人)去输入密码来验证自己身份的。结果你到好,用一个自动化工具帮你输入密码,欺骗银行,让他以为是你输入的。这是不是欺诈? 对于程序员来说,写个脚本帮自己刷点什么太正常了。有些程序员写脚本,看到自己晚上9点后还登录在服务器上的话,就给老婆发封邮件说要加班今天回不去了。有的程序员写个程序,定期给老婆的朋友圈全部点赞。我有很多邮件甚至不是亲自读的——直接写个脚本爬下来,然后分析一下内容。有关键词才看,没有的话存档然后定期看一眼标题就行。程序员学得一身通天彻地的屠龙术,其实搞到头只有这点羊毛可以薅,你们还在那里大叫不公平。那我们每天晚上自己加码学这些技术的时候,怎么没听有人说,“这个得算加班”啊? 至于刷多了的问题,这叫程序有bug——可是程序有bug不能叫程序员道德败坏吧,否则阿里的反腐难道是在HR的主持下集体抓bug的工作? 当然,另一种可能就是,当事人确实是想多买几盒月饼。只不过后面事情闹大了,又不能推在临时工头上,所以只能说脚本有bug。不过据当事人声称,事后打过电话想退回多余月饼。如果这点属实,也可以排除想多刷月饼的可能。因此事后是否曾打电话要求退回月饼非常重要。同样,当事人讲法是打了,阿里的声明中未提到。 所以,此人可以以技术不过关的名义辞退,但是却不应以试图刷月饼的名义辞退。因为他确实在写程序时考虑不周,对线上业务造成了影响。这在安全组工作中属于过失。没错。 内务处理,很多时候只能看出发点和动机,甚至有时没什么可以参考的。要参考的话,内部多出来的月饼用秒杀,这又是合了哪条规了?要是软件公司每件事物都要参考规章来办事的话,索性还是关关门大家去应聘公务员来的快一点。很多时候本来就是没什么规章的情况下大家估摸着办,办好了就成了规章。办砸了,如果本人不是蓄意做砸的话,都属于还可以抢救一下的范畴。最多是技术不够/工作不够热情/协调能力不足/运气不好反正你办砸了怎么也得来个差评。惩治一下就行了,否则还有哪个愿意当这个出头鸟来办事? 整件事情上,个人观点,觉得惩罚出手太重了。一般来说,这种事情退回月饼,通报批评,扣除当年奖金已是重罚。开除已经是在严打了。开除加上对外点名。。。要知道所谓杀人不过头点地,今天你打倒在地还要踏上一只脚,叫他永世不得翻身。。。 总体结论,阿里系的安全恐怕要打个问号。即使现在没问题,将来也不排除这种可能。做内部涉安全测试的同学,就根本不能想测哪里测哪里。如果测砸了。OK,价值观不符,开除。测过了,没有线上影响,确实有bug,需要赶快修复。OK,等着你的不是嘉奖,而是仍旧价值观不符,开除。那什么最安全?当然是领导说要哪里安全就哪里安全,说要多安全就有多安全。多余的事情不要多问,不要多听,不要多想。这也确实是合了阿里的价值观,一个对内严格管理,加大力度反腐的公司,是不应当有一群看什么都不爽要亲自拆一下看看的猴子的。只是这样的安全组能起多大作用,自己想吧。 最后补一下合法问题。合法性上,不好说。毕竟阿里给出的台面理由是“价值观不合”。阿里有没有把“价值观”定义为劳动雇佣合同中的一部分,我没看过合同,所以不知道。这和fb的case有差别。因为fb是把企鹅定义成了竞争对手,所以带着竞争对手的人来公司参观是明显违反保密原则的。白纸黑字毋庸置疑。更不提这也违反了H1b签证要求。而如果阿里并没有将“价值观”定义为员工要件之一,这种情况就和以“八字血型和公司名字不合”解除合同一样,属于甲方无正常理由解除合同。理应给予补偿。

使用Jupyter制作slides

Sep 8, 2016 - 1 minute read - Comments

Jupyter是ipython notebook的新名字。可能很少有人知道,这个玩意居然还能制作slide。 可能有人有印象,我做过一个markdown to slides生成器,底下用的是reveal.js。今天才发现,jupyter也有类似的功能,底层也是reveal.js。不过用起来比我自己写的东西方便多了。 用法很简单。首先在View菜单里,使用Toggle Toolbar功能打开toolbar(如果已经打开就不用管)。在toolbar里能看到一项叫做Cell Toolvar的,后面一般是None。请转换为Slideshow。此时你能看到每个Cell都会多出一条来,上面有Slide Type。 Slide Type有六个选项,默认是啥都没有。后面依次是Slide,Sub-Slide,Fragment,Skip,Notes。Slide和Sub-Slide是主要的选项。在reveal.js里,Slide是指左右切换的那些页,而Sub-Slide则是你切到一个Slide后,按向下逐渐出现的一些页。这类似于章和节的关系。章和章之间左右切换,节和节之间上下切换。而如果选择为默认,那么就不开新页,跟在前面的页面里。 Skip的话,这个Cell会在Slide里跳过看不见。有很多时候,我们需要在Slide里嵌入Python代码。但是代码又有的时候需要做一些额外事情,我们不希望出现在Slide里面。如果将这些额外代码运行后删除,又恐怕下一次跑这个notebook跑不动。这时候就可以设定为Skip。 Notes原则来说是给slide里面加注释用的。照理说在页面上按s就可以跳出提示,但是我测试下来跳出来却是空的。看了一下页面源码,确实是有东西的。可能是因为我使用的是静态的文件,而没有开启服务的关系。 Fragment我也不知道干什么用的。看名字好像是代码碎片一类的,如果有知道的可以告诉我一下。 最后,用nbconvert就可以把结果转换为html来用。方法是: ipython nbconvert --to slides --reveal-prefix "http://cdn.jsdelivr.net/reveal.js/2.6.2" ... 之所以要加reveal-prefix,是因为最新的reveal和jupyter生成的html不兼容。 生成过程需要使用nodejs,记得安装。 生成出来的Html就是个彻头彻尾的slide了。原则上,同一个ipynb也可以生成html或者pdf(借助reveal.js自身的pdf打印功能)。这样的话slide也有分发能力。 玩的愉快。

CentOS 6下安装Python2.7

Aug 24, 2016 - 1 minute read - Comments

我以为只有我不知道,不过看来大家都不知道。 很多时候,我们还得维护CentOS 6的设备。这件事很大程度上不是我们能决定的。但是CentOS 6的默认Python是2.6,很多最新的代码无法执行。例如Django,必须使用Python2.7⁄3.4⁄3.5。ansible好像也要求新版本Python。 作为CentOS管理员,第一个想法当然是编译。但是在CentOS 6下,不应该自行编译Python。因为Python的编译有很多坑,例如默认没有内置readline,没有内置sqlite。你不信编译了试试看?我直接从源码编译是不行的。 有的同学提出想法说,可以下在srpm包然后和Python2.7的source code做compatible。但是我要说一个比这个简单的多的官方方法——RHSCL。 RHSCL的全称是Red Hat Software Collections。旨在于在长期支持版本中提供最新版本的动态语言和数据库支持。这里是RHSCL支持的基础工具和版本。这里是说明性文档。具体方法如下: # 1. Install a package with repository for your system: # On CentOS, install package centos-release-scl available in CentOS repository: $ sudo yum install centos-release-scl # On RHEL, enable RHSCL repository for you system: $ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms # 2. Install the collection: $ sudo yum install python27 # 3. Start using software collections: $ scl enable