Shell's Home

Aug 13, 2013 - 1 minute read - Comments

台湾行——第三四天,台北

第三天 士林 今天是雨苍的一个台北朋友开车带我们玩淡水,首先谢谢雨苍和Jenny Lee。 早饭在士林吃的。雨苍点了个蛋饼,我们每个人叫了一份早餐。非常丰盛的早餐,只要80台币,合17人民币。令我感到十分惊讶。看来上海的物价已经全面超过台北。 官渡 官渡那里有一个妈祖庙,我们简单看了一下,绕了一圈。台湾这里的寺庙,不烧香就完全不用钱。这个让我们这帮不付钱就不能进寺庙的人感到很新奇。 雨苍和jenny给我和frank讲解了半天在台湾怎么求签。可惜碰到了两个无神论者(好吧,我是不可知论者)。不过后来看大尾鱸鰻,好像台湾这里的人很信求签。这点很有趣,因为大陆这边的人只在求签结果有利的时候才信(至少我碰到的好几个声称自己信求签算命的都是如此),不利的话就换一间庙。我本来觉得日本人碰到凶签就系在系签架已经够投机取巧了。。。 官渡的水鸟九二餐厅很赞,四个人去吃,吃到东西都拿回去打包,居然只要2400NTD,合大约500RMB。关键是从大窗户里面可以看到官渡自然公园的水鸟盘旋,是风景非常好的景观餐厅。而且东西超好吃,海鲜炒饭很香。如果在上海有这种店,大概1000一桌也会抢吧。 淡水 淡水那里最有名的就是鱼丸和铁蛋,我买了一堆铁蛋回去准备送人(因为比较耐放)。 台湾这里有很多很有趣的东西,包括一堆奇奇怪怪的明信片。买了一堆邮寄回去,某同学结婚,还特意挑了一张很贵的明信片,也不知道能不能邮到。 八里 我们先是坐渡轮去的八里,据说这里比较有名的是脚踏车。其次就是双胞胎和芋头糕。这两个都是吃的,味道不错,有兴趣的人可以买来尝尝。 渔人码头 渔人码头据说是情侣的最好去处,今天一帮基友加个美女跑过来看夕阳,不知道是什么样的一种节奏。 夕阳很不错,自己看照片吧。 士林夜市 士林夜市疯狂大采购,买了一堆吃的东西。先是牛肉面和蚵仔煎,然后喝了冬瓜茶。frank打了半天平衡弹珠台。我们买了雨苍点名的豪大大鸡排和东山鸭,又喝了印度拉茶。 这里的东西真的很好吃,而且最重要的是,真的不贵。我在这里还买了一副眼镜,据说是日本进口镜架,蔡司镜头。合计只要1100人民币多点,在国内至少翻一倍。仅这一项,大概就能把我的机票打回来。 洗衣房 晚上体验了一把自助洗衣,把衣服丢进去,然后丢几个10元,就不用管了。这样的模式其实很不错,不用在自己家里买一台洗衣机闲置着占地方。我想了一下为什么大陆没有自助洗衣模式,结论其实不是没有,但是都在市郊,不知道为什么。 可是我们没有零钱,所以我们去隔壁的全家换开。我们什么都没有买,全家的前台二话没说就给我们换开了。如果在大陆,估计能换也没什么好脸色。 于是我们在衣服烘干的时候,又绕过去买了几罐啤酒,一边聊天一边等衣服烘干完成。台湾这里的水果啤酒很好喝。而且他们有种啤酒,叫台湾啤酒,这里人叫做18天的。因为瓶子上会要求你18天内喝完,不然会坏。 第四天 故宫 跑到台北故宫,一个不能不看的东西就是翠玉白菜,另一个则是毛公鼎。两个都号称是重宝。其他则有些乏善可陈。不是没什么可看,而是每一件都是珍品。不过话说回来,其实没几件是我看得懂的。虽然很多我知道历史价值,知道地位。可是看不懂就是看不懂,包括翠玉白菜和毛公鼎。 其中尤其是一幅钟馗像,我给大家找来看看,是不是我的艺术鉴赏力不足。。。 高铁 台湾高铁感觉和大陆的高铁差不多,从台北到台南只用了一个多小时。反倒是台南那里换乘的纵贯线让我觉得比较新奇。纵贯线是短途火车,但是和我们的火车不同,他的长相反而比较类似地铁。其实这样比较好拉,反正40分钟也到了。 比较有意思的是台湾这里的票据和盖章文化。火车下来后,票据基本都是缴回的。但是我说要保留,乘务就和我说隔壁盖章拉。现在手里有一张盖过章的火车票。 后来我发现,无论走到哪里,都有一堆章可盖。这里旅行应该准备个本子,然后不停的盖章。这么说起来世博还是有点道理的。 台南 来台南不能不吃的就是牛肉汤。这次居然有人在COSCUP上专门讲解他的项目,要挑战台南牛肉汤。不过我们不用管那么多拉,雨苍带我们过来吃的一定是精品。 牛肉汤不是牛肉面,是一种用本土牛,经过熬煮,加上配料的汤。配上肉燥饭或者其他配菜。我们试了试,味道很不错。有机会去台南的可以试试看,据说大街小巷遍地都是。 下面体验了一把台南的夜生活,打棒球。台湾这里很迷棒球。贝壳以前玩过一点棒球,但是很久没打了。试了试投球,最高55KM。其实估计不止,因为很多高速球控球力不足,都打到边框上去了。 然后就是击打。经过几次试手,只能说勉强打中吧。命中率大概一半,基本都是滚地球和左外野高飞球,只有两个长打。这还是80公里的低速球。托总打高速球基本也是这个成绩。不过打完后我和他都酸痛了两天。 安平就在台南的旁边,这里有两家豆花雨苍说很不错。台湾的豆花和上海不同,买来的时候不是散碎的状态,而是整洁的一块,需要自己搅碎。配上各种糖水(甜党)。我买的是柠檬糖水。另外还有抹茶冰,就是用抹茶冻出一整块冰来,吃的时候做成刨冰。 有空都试试吧。

Aug 12, 2013 - 1 minute read - Comments

台湾行——第一二天,COSCUP

早场 今早的签到挺有意思,在嘉宾牌里面含有RFID芯片。用平板照一下就可以完成签到。演讲中有人讲到,他们在做这个技术支持。将来可以用悠游卡或者星巴克卡完成签到,或者互相绑定到主帐号,替代身份登录使用。 上午听说外面有taiwan python社区的摊位,就出去挑战一下。他们找人背对屏幕写程序,挑战三道题对的就有奖品。实话说这个比不许调试更难,也能容易看出水准。这里也可以看到他们的水准。如果大家都不会python的话,一般都是讲一些鸡毛蒜皮的有趣东西吸引一下兴趣。直接挑战这个东西会被当作刁难人拉。 我上去试了一下。第一道是fib,闭着眼也能写出来。第二道是对一句话中的每个单词反向。这道题差一点,功亏一篑。我的解是这样的。 f = lambda x: ' '.join(map(reversed, x.split())) 问题在于,reversed返回的是迭代器,而join不吃迭代器。正解是这样的。 f = lambda x: ' '.join(''.join(reversed(i)) for i in x.split()) 所以,拿到一套纪念衫,还算可以拉。 然后我反过来给他们出了一道题目,一行内计算fib数列。这个问题有点难度。 正解是使用Y算子。大家都知道原理了,就懒得写了。 第二个解是我提出来,可以用fib通项公式规避迭代。 然后摊位上有人解出来,可以用set函数来替代赋值,利用列表推导式完成迭代。 最后我发现,python3里面print可以作为函数用,因此也可以做个弊。 反正最后各种作弊解法。觉得他们挺有意思的,回去准备保持联系。 下午的演讲 下午是我的演讲,不得录象。据主办方说,我这个是唯一一个非赞助商,非商业性质的不得录象的演讲。演讲开始的时候,会场就在狂进人,到最后人已经在前排坐在地上了,外面进来的通道上还塞满了人。这是我头一次碰到演讲会场爆场的情况。 内容就不能多说了,反正梗一堆。大家也挺开心。演讲能开心结束我也很高兴。 凯道运动 晚上跟着雨苍去凯道观光。那里正好举行游行,为一位在国军内遭到黑幕待遇惨死的士兵声援(这算不算讽刺?)。 我们跟着frank的一个朋友,从台大医院跑到了会场。会场很闷热,但是气氛很高。人山人海全是人,据事后统计说有20-25万。整个会场很有秩序,我拍了一下地上和垃圾箱,大部分的垃圾都在垃圾箱里。不知道我们什么时候才能做到。 夜市 在去夜市的路上,碰到两个日本来的MM。我们正好要去,就顺道一起过去。 两个日本MM的英语很烂,经常说到一半就开始说日语。偏偏我们的日语也很烂,frank好久不听了。三国语言鸡同鸭讲说了半天,聊的倒是很热闹。 夜市这里的东西都很不错。我们一路走一路吃了过去,大多数东西都很好吃,而且很便宜。一份饼包鸡肉什么的只要60台币,大约12-15人民币。和上海夜市上卖的价钱差不多,但是好吃无数倍。感觉上上海消费比台北还要高。 第二天 抽奖 今年的抽奖可谓一波三折。先是显示器无法投影,然后抽大奖的时候四次杠龟。先抽到两个观众,都不在,然后抽到讲者,再抽到观众,再抽到工作人员,才在。工作人员又在抽奖场外直播,由组长在无线里面喊着有有有有一路跑下来,才好容易领到一个大奖。 个人认为这是最有趣最完美的结局了。 lighting talk 个人认为lighting talk是COSCUP最high的一个环节。 大致概念是这样。当天报名,然后上去讲。每个人五分钟,如果超时就要拔显示器。讲什么都可以,只要大致搭边。今年居然有人上去讲台南牛肉汤。 不过开始的时候,显示器设定并不是很好。大部分人(包括主持人)都无法顺利投影,只能拿着笔记本在摄像头前。直到有个美女(记忆中是mosky,台湾的python女神)提前上去,把mac接好,才能看到slide。 lighting talk之所以是最high的一个环节,是因为在实际操作的时候什么事情都可能发生。主持人又在一边给压力,所以什么荒腔走板的事情都会发生,场面各种欢乐。 庆功宴 庆功宴到一半的时候,大家基本开始串场了。 这次我和台湾大会网络组的组长聊了一下,COSCUP的网路用的是从中华电信租的五条百兆线路,从TICC的机房直接接出来,服务1800人。加上讲师和场务,平均每人31KB/s。 作为对比的,上次PyCon2011,我们会场使用的是2Mbps的线路,服务100人以上。如果全接上去,平均每人2.5KB/s。 所以你就知道为什么网络会爆了。

Jul 19, 2013 - 1 minute read - Comments

一种新的python局部调试手法

我们都知道,python里面可以用pdb来调试代码。但是pdb往往不大好用。有时候调试代码往往在多重条件里面,直接用pdb需要下条件断点,设定复杂的条件。 一个简单的办法就是这么干。 __import__('pdb').set_trace() 但是有的时候,连这个出现的条件都不满足。例如,代码必须在一个受限环境中运行,很难拿到console,或者其他林林总总的毛病。这时候,我们还有一招秘技。 import pdb, socket s = socket.socket() s.connect(('127.0.0.1', 8888)) f = s.makefile() pdb.Pdb(stdin=f, stdout=f).set_trace() 在连接到的目标端口上,提前用nc做好监听,就可以在触发断点的时候直接连接上来调试。

Jul 18, 2013 - 1 minute read - Comments

公司的导向

客户导向 最初级的公司,是基于客户导向的。所谓客户导向,就是“客户要什么我做什么”。 从服务型公司来说,这也没什么错。但是IT界挣钱的主要秘诀是边际成本递减效应。同样开发成本,如果一家公司用,也许要亏本。但是100家公司用,不但价格大幅下降,还能海赚一票。因为从第二家开始,就没有了研发成本,只需要营销就好了。这就是复制的边际成本递减效应。而基于客户导向的公司,很难做到边际成本递减。为了一个客户的需求,不得不委曲求全,在产品里面反复做出修改。 也许很多甲方在这里会不平。“我提要求有什么错?”,“我出钱的!”。是的,从甲方角度,这些都是合理的。甚至从服务的角度,有这些也是好的。然而从产品角度,对各种业务场景(尤其是非预想的业务场景)的适应,会严重冲击核心系统,造成维护困难。明明90%的客户只用10%的功能,但是还是要维护所有功能。而且每次修改一点功能的时候,都要大幅动全身。由此,不能将第二家客户的研发成本压到最低,导致边际成本递减不下去。 在技术导向公司内,最“明星”的职位是项目经理。他需要负责项目的前前后后各种方面,并且直接关系到项目是否成功。公司离开任何一个程序员(甚至包括老板)都可以运转,但是离开项目经理,目前他正在做的项目就无法完成了。话虽如此,大部分项目经理的日子过的也很苦。因为客户并没有什么特别的理由需要选择你。多个项目组竞争的结果就是低价开发和高价维护策略。 大部分的客户导向公司,在开发系统的时候往往会采取低价策略,有的时候甚至会亏本。然而在维护和后续开发的时候,会提出各种加价要求。因为客户一旦采用系统,就很难将原有系统直接切除。因此反过来,客户往往在提出需求的时候,必尽必全,力求毕其功于一役。这反过来加剧了系统共性提取的难度。 大多数老板对客户导向的问题一清二楚,所以很多人都想做产品。然而不是每个人都能成功的做出产品来。东西不够牛,在营销阶段客户就会选择定制性更好一些的公司。最后为了抢客户,从市场导向沦为客户导向,从把握客户变成被客户把握。 市场导向 市场导向的公司比客户导向好一些。他们提出客户中共性的部分,做到最好。由于他们是最好的,因此只做一些小的改动就可以迎合大部分客户。由此,他们可以在市场中尽情的攻城略地,日进斗金。客户导向的公司无论是在成本上还是在口碑上,都无法和市场导向公司相竞争。 能够完成市场导向的核心在于两点。首先是对客户共性的把握。如果不能把握客户中具有共性的部分,就无法开发出通用性的产品。其次是产品的易定制性。无论产品的共性多强,定制还是无法避免的。如果不能将定制隔离在产品主线之外,就又会沦为各个厂家的代工商。 市场导向公司往往会采用“封装层二次开发”的手段来实现上述两点。首先基于客户的共性需求开发出一个基础平台,然后在基础平台上做第二次开发。甚至由于二次开发技术要求低,利润率低,因此往往会被外包出去。 在市场导向公司里,最“明星”的职位是产品经理。由于不能盲从于客户的需求,因此产品经理必须了解客户,从客户的共性入手,提取需求,引导客户合理使用。 然而市场导向和客户导向的边界并不明晰。有的时候产品推出的时候预定是市场导向,封装层基础平台做的有模有样。但是在卖到一半的时候就开始狂改封装层。到最后一次开发量比二次开发还大,产品彻底做成一堆项目。这就滑回了客户导向。 营销导向 营销导向的公司常见于公众领域。他们做的是“谁都会做”的东西。但是通过群体营销手段,将这个东西推广到上千万客户面前。从而取得巨大的效益。营销导向公司的特征是市场预测和营销费用异常的高,有的时候干脆干的就是转手卖营销的勾当。 从技术上说,任何东西要做大都是有技术难度的。因此营销导向公司在做到一定规模前异常的轻松。基本上可以想像成拿现成的系统改一改,招几个人负责运营,然后狂打广告,最后坐地数钱。唯一的难点,就在这个狂打广告上。谁的广告,如何打,如何尽量少花钱多出名。这里有无数讲究。 然而一旦超过一定规模,就会立刻出现瓶颈。同时在线用户数无法增加,系统bug不断,经常崩溃。冯大辉说过一句,技术的作用在短期往往被高估,而在长期往往被低估。其中后半句在这种情况下异常显著。 当然,并不是所有营销导向公司最后都会死在技术上。有些公司有足够的远见,或者运气很好。在问题出现前,就开始策划和解决技术问题。这些公司往往在经历几次阵痛后,转型为了半营销半技术公司。甚至有些公司在主营业务之外,也把他们的技术服务卖给其他公司。 技术导向 技术导向的公司比市场导向更加强一些。他们追求的是“人无我有”。通过完成其他人短期不可模仿的功能,造成市场上没有其他选择的局面。只要你想用类似的东西,就只能找他们。 技术导向的公司必然是以程序员为导向的。也只有基于技术的公司,才可能真正善待程序员。甚至其中一些核心成员经常需要谈到分成或者股权,期权。逻辑很简单,如果某种技术只有一个人可以搞定,老板自然不希望这个人从手里流失出去自己单干。他必须提供和单干差不多的福利(当然,是去除经营的风险后)。 具体提供分成,股权,还是期权,取决于技术的“保质期”。如果技术在短期(半年或者更短)内是不可复制的,但是一定时间后必然可以复制。那么一般是提供分成。如果技术成员需要为公司的长远考虑的,或者技术在长期(一年到三年)是不可复制的,那么一般提供股权期权。三年以上不可复制?这种神人一般都被大公司当宝一样供起来了,你没机会见到的。 产品导向 产品导向是个奇葩的情况,一般很少见。只有对产品理解到一定深度,同时公司大到一定程度时。才能自如的驾驭技术,将一项项技术当作组件一样组合,产生影响世界的东西。在这里,最重要的并不是“拳头技术”,而是已经存在的技术的组合和发挥。 目前最知名的产品导向公司,就是前苹果。

Jul 16, 2013 - 1 minute read - Comments

从齐治科技辞职了

最近贝壳又一次的辞职了。 离职的原因还是很单纯的,主要是管理上跟不上老板思路。既然如此,那就不要勉强为之了。 我很感激现在的公司给我的帮助。毕竟在现在的公司,我的技术得到了长足的进步。同时,也给了我很多把想法变成现实的机会。 目前我的意向是七牛云存储。在此感谢他们给我的机会,希望能在他们那里玩到一些有趣的东西。 谢谢几位朋友给我的机会,我不愿意参与你们的项目并不是不看好你们。一方面,要同时做好下属和朋友是非常困难的。作为老板,不能因为私人的交情而偏颇公司的业务。按孔明的说法,就是“宜付有司论其刑赏”。而作为朋友,必然嘻嘻哈哈吐槽打屁。对着一个“不可因私废公”的人要放松下来,神经要不是一般的粗才行。 另一方面,目前贝壳还没有孩子,而创业是一个全力投入的事情。万一创业到一半变成超级奶爸,事情就比较被动,害人害己。所以我目前更偏好至少第一轮天使投资过之后的公司。有创业的氛围,紧张但是不紧迫。我更喜欢正常的生活。每天都有时间做点自己的事情,有点自己的小娱乐,研究点自己的小技术。可以想像的是,在孩子到一定年岁前,我都很难承担从头创业的巨大风险了。 最后,我也不认为自己有在创业团队中能够hold住大部分东西的能力(这并非出自我的妄自菲薄,而是基于实际评估的结果)。我希望在新的公司,至少做一些特定方面的事情,积累一定经验。 要下海弄潮,先要搞清楚自己的斤两。其中最重要的两条,就是自己是否能承受风险,和自己是否能撑起一片天。既然两者目前都还欠缺。所以,请原谅我难以回报你们的厚爱。

Jul 5, 2013 - 1 minute read - Comments

薪水高的人纳税少

我们不关注税前和税后的工资,让我们来关注老板的付出的和员工到手的差。 中国(至少上海)的税法规定,企业需要先缴纳44%的四金,再缴纳18%的个人四金,然后扣除所得税,才是员工到手部分。所得税是逐级递增的,所以很多非财务出身的老板会以为工资高的人扣除多。 实际上,在50k以下月薪的情况下,四金扣除比所得税更厉害。而四金扣除是有上下限度的,具体在去年平均工资的60%-300%之间。以2012年为例,当员工工资不足2815的时候,扣除是按照2815计算的,因此公司必须付出1143的企业四金——无论其工资多低。而当员工工资高于14076的时候,扣除不会增加,因此无论工资多高,公司只需要付6193的企业四金。 我们以500, 5000, 15000, 25000, 45000为例,分别计算到手比例。 500月薪,到手88,付出1643,比例5%。 5000月薪,到手4082,付出7200,比例56.7%。 15000月薪,到手11228,付出21193,比例53%。 25000月薪,到手18729,付出31193,比例60%。 45000月薪,到手33531,付出51193,比例65.5%。 是的,当员工工资正好在15000不到的时候,到手比例最低。在2800-5000之间的到手比会比较好。在工资更低的情况下,到手比例也会极度的变糟。而在15000往上,到手比情况又会变好,在20000附近和5000左右持平。

Jul 3, 2013 - 1 minute read - Comments

使用getmail备份imap邮件数据(例如gmail备份)

使用getmail备份imap(例如gmail)服务器上数据的方法。 原因 随着7.1的到来,诸位geek最重要的事情就是备份google reader的数据了。很多人都在讨论gmail还要不要用。 废话,当然要。这么好的服务,为什么不用? 只是随着google reader的事,在用gmail的时候也得留个心眼。平时数据勤备份,不要所有的内容都绑定到这个邮箱上,否则有得你哭的。 安装和配置 getmail是一个用于将远程数据取到本地的系统,和fetchmail是一类东西。废话不多说,先装getmail。 sudo aptitude install getmail4 之所以用getmail不用fetchmail,是因为fetchmail我搞不定。而且getmail比较容易备份到指定地点。要是输出能gzip掉就更好了。 建立~/.getmail目录,下面放一个文件,例如gmail [retriever] type = SimpleIMAPSSLRetriever server = imap.gmail.com username = [username] password = [password] mailboxes = ("[Gmail]/所有邮件",) [destination] type = Mboxrd path = ~/shell/gmail.mbox [options] read_all = false delivered_to = false received = false verbose = 2 message_log = ~/.getmail/gmail.log username填你自己的用户名,普通用户不需要@gmail.com,企业用户需要@你的域名。password填密码,两次认证的需要分配一个Application-specific passwords。mailboxes里面不要照网络上的填写[Gmail]/All Mail,那是英文环境用的。 ~/shell/gmail.mbox是目标文件,你需要先touch出来。~/.getmail/gmail.log是log,建议和配置文件同名。 执行 把下面的gmail替换为你的配置文件名,注意不需要写.getmail/的前缀。 getmail -r gmail 系统就会开始备份你的数据。像贝壳的gmail这种数据,量比较大,时间也会比较长。 问题 getmail是python写的,备份数据比较大的时候,内存消耗会很惊人。而且当处理巨量数目的文件时。在启动时会将目录全部下载到本地,然后计算一阵。这个耗时,网络消耗和CPU都比较大。要有点耐性。

Jul 1, 2013 - 1 minute read - Comments

解决问题的艺术

网上有篇经常用的文档,叫做提问的艺术。我这里狗尾续貂一番,恶搞一篇解决问题的艺术。大家看看就好,不要认真。 谁说出问题的?提示是什么?他为什么是个错误? 有太多人,和风车打了半天,才发现他不是巨人。。。 提示在google上有搜到么? 太多和没有都是错。太多的话,说明提示是个万金油,很多情况都会出。你分不清文章中哪篇才是有用的。没有的话——那就没什么好说了。 能够复现么?条件是什么?其他版本也有问题么? 能复现的看数据,不能复现的打log,连log都打不出的在脑子里面模拟代码。 系统的工作机理是什么?每一步进出的数据是什么?数据都对么? 问题越奇葩,原因越傻逼,往往如此。 因为通常情况都被你考虑掉了,所以往往问题出来时,你会抽自己两个耳刮子。 问题往往都出在调用者身上,而不是供应者身上。 因为用的人有责任保证用对,而写的人没这个责任。 RTFM

Jun 25, 2013 - 1 minute read - Comments

效率,慈善和歧视

这个话题的最初,是因为和同事讨论到就业中的禁止歧视条款而起的。我们当时讨论到,很多行业中明文或者潜规则的禁止招收女员工,是否合理?偏向不招收生理残缺的人呢? 市场自然抉择 这个问题的第一直觉和最基础原则,就是市场自然选择机制。自然机制而言,市场会自然选择合适的人,以保持最大的竞争力。企业不愿意招收女员工,或者生理残缺的人,自然是有其理由的。 女员工这个问题,我想让不止一个企业吃过亏了,尤其是略微大一点,还讲那么点规矩的企业。在经济危及来临的时候,女性员工害怕裁员,所以抢先怀孕。按照国家规定,你非但不能裁她,还得保证她的生理和心理健康。一个企业就那么点人,你非但不能裁那个干的不好又没有劳动力的,相反还得裁掉一个正常员工来保证她的岗位。我想是个老板都不说有多呕了。 至于生理残疾,也是很麻烦的。软件这个行业的门槛还比较低一些。普通的办公室文员,你是打算招个看不见的呢?还是听不见的? 所以,老板喜欢高学历的,你不能说这是歧视没有学历吧。那老板喜欢男性(汗。。。),为什么就一定是性别歧视呢? 适任原则 自然,上述言论听起来很刺耳,很冷冰冰。为了保证竞争,难道孕妇,女性,残疾人必然要成为牺牲品么? 其实孕妇和生理残缺,并不一定和生产效率有关。例如生理残缺,我最近就碰到了一回。有个朋友来投简历,自称是听力残疾,有残疾人证明的。我问他是否能够正常进行日常对话。他回答说,在听力辅助设备的支持下没问题。我说,那么就和普通人没有区别。我接受的了方言,接受的了客户,我想我就能接受你。 以前说过的乙肝也是一例。只要员工都做过乙肝接种,我觉得也没道理不接受乙肝患者,尤其是小三阳患者。至于大三阳,还有某些对生理卫生要求比较严格的岗位,例如食品卫生,那就是另一回事了。 同样,我也不介意性别,学历,种族,国籍。我在意的事情只有,你是否能完成工作,你的成本有多少。大家知道某些民族和国籍的员工招进来特别麻烦,这非我力所能及,我就不展开阐述了。 当然,作为软件公司,限制很小。有些地方就不行了。男性澡堂里给人搓澡的,招一女的算怎么回事,是吧? 没有理由的歧视 所以,我反对任何没有理由的歧视。例如女性不适合做计算机?这是什么道理?有多少程序员因为这种莫名其妙的歧视,被迫走上了断背山之路。 同样,要求司机必须是男性的,我觉得这个才是不合理要求。从生理上说,男性司机久坐对健康不利。如果说大货司机,经常要参与装卸货物,一路上风吹日晒,路段还可能不太平。要求必须是男性还有点道理。那普通商务车辆司机必须是男性的理由我实在是想不到了,你不觉得一个美女给你开车比男的更加赏心悦目么? 当然,不同的人对歧视的判断是不同的。我个人并不认为女性不适合做计算机,但是很多老板这么认为。我个人认为女性可以做司机,但是很多老板不这么认为。但是没关系,只要歧视原因和劳动力之间确实是无关的,我相信总有老板会赏识你的。 禁止歧视限制 当然,为了一些我们都想的到的理由,政府也会立法禁止一些有理由的歧视。例如刚刚的不得歧视女性员工和保护怀孕就是一例。如果企业都因为适任而不愿意让员工怀孕,那么谁还去怀孕生子呢?国家将来的人口(尤其是主流族群人口)肯定会锐减,这和国家的利益相违背。 当然,为了做到这点,毫无疑问的,就违背了市场机制。立法保护孕妇权益,就迫使企业歧视女性(尤其是未生育女性,幸好在中国还有计划生育这种东西)。立法不得歧视女性,那又容易和适任原则打架。到最后,还是市场机制和扶助孕妇打架。 类似的打架还出现在欧洲的另一个领域——雇佣。据欧洲的一些朋友说,欧洲的法律相当重视保护雇员权利,重视到了简直歧视雇主的地步。有个欧洲的愤青就写过一篇长文,为什么我让你喝西北风。大意是,如果我多雇两个人,我得保证他们一直有事情做,雇主没事做导致的雇员空闲还是要付薪水。而且还要缴纳高昂的社会保证金,又不能随便裁员。成本核算下来,现阶段每增加一个雇员,利润居然是递减的。多雇两个人,还不如老板解散了公司吃低保呢。 当然,那文章里的数据什么的都不能当真算的,一认真就满地窟窿(哪篇具体研究文章都是这个样子,光一个物价水平核算就够吵半天了)。但是本质问题却说的没错。如果国家不保护雇员,要国家何用?毕竟大部分人都是雇员而非老板。如果国家保护雇员,把老板搞跑了。那国家的经济增长哪里来?税收哪里来? 党员算不算歧视 原文请看这里。我只说一句简单的。人以类聚,物以群分。想想这哥们曾经想(可能现在还是想)加入一群什么人做什么事。再想想他现在想加入你们。。。

Jun 13, 2013 - 1 minute read - Comments

用户友好的密码

用户友好的密码 何谓用户友好的密码?我是指在密码中尽量不给自己找麻烦,又能正常使用。 不包含空白字符。否则你会烦恼有哪个空白字符,有几个的问题。 不包含特殊字符。否则会烦恼怎么输入。 不使用容易混淆的字母。不容易输入错误。 方便手机输入。 尽量少包含大写字母。 只包含容易在手机上输入的符号,或者不输入。 手机上容易输入的符号 在android上,以下符号可以在google输入法中直接输入。 @*+-=/#()'":?!~ 总计15个。估计加上iphone后会更少。如果要用符号,建议从这些里面取,会减少你很多密码输入的烦恼。 容易混淆的字母 Il1 0O 连续的mn 连续的wv 强度规范 我把密码管理规范里面的结论总结一下,略去推导,凑凑数,把密码级别排列成以下几个: 弱密码:不希望别人看到,然而别人看到并没有直接损失的内容。熵应当在20bit以上,五年修改一次。 中密码:不希望别人看到,别人看到会对你产生损失的内容。熵应当在33bit以上,两年修改一次。 强密码:有价内容。熵应当在45bit以上,一年修改一次。同时作为弱本地密码规范, 本地密码:熵应当在58bit以上。 每个级别之间大约差12bit的熵。初始熵强度至少20bit,低于这个水平就很难说这是一个密码了。 强度估计 以最容易使用的密码计算,符号应当最多包含26个字母+10个数字,排除l10这3个。每一位有33种可能,熵大约是5多一点。 弱密码:至少4位。 中密码:至少7位。 强密码:至少9位。 本地密码:至少12位。 更强一些的密码可以用52个大小写字幕+10个数字,排除Il10O这5个。每一位有57种可能,熵大约是5.8。 弱密码:至少4位。 中密码:至少6位。 强密码:至少8位。 本地密码:至少10位。 建议 网络: 弱密码:4位小写字母+数字,5年修改一次。 中密码:7位小写字母+数字,2年修改一次。用于保护大部分内容。 强密码:8位大小写字母+数字,1年修改一次。保护重要内容。 本地: 低:8位大小写字母+数字。 高:10位大小写字母+数字。 注意避开Il1O0,以及其他可能的混淆方式。