重新开张

去年4月份使用的虚拟主机homezz结束服务。备份了数据以后,本来想先放在自己AWS的VPS上过渡一段时间,后来配置出了问题,短时间没搞定apache2和php mysql的配置就放下来了,blog也一直停业至今。

这个五一的五天长假正好找到空折腾。手头的备份文件(本来以为丢了,费了一番功夫在iCloud Drive里找到了)如下:

  • MySQL数据库的SQL DUMP,版本5.7.25
  • cPanel下载的服务器wordpress目录,版本5.1.1版本。除了这个blog的本体,里面还有某人当年寄存在我blog上的博客片段。

之前用来跑shadowsocks的key找不到了,重新起了一个普通的Ubuntu 18.04,也许是因祸得福,环境更干净了,很顺利地装上了php5.6和mysql插件,apache也不需要配置直接能用。

接下来就是决定用哪家的主机,毕竟用AWS的VPS价格真不便宜,还要自己维护以及折腾SSL。候选目标最后圈定在DreamHost, BlueHost和SiteGuard。鉴于我对性能和稳定性没有要求,最后选了便宜的BlueHost(年付),另外还有LetsEncrypt的免费SSL。

没想到下一步的迁移是这次重新开张最麻烦的步骤。导出总是失败,查看了错误日志里发现应该是某一篇文章里的内容触发了bug。只好通过人肉导出一个个分类的文章的做法一点点搬,最后算是恢复了将近400篇博文。

最后启用SSL的时候又碰到了BlueHost的bug,提示未知错误。网上搜索了一圈,找到几个方案也没搞定。但第二天睡一觉起来的时候就好了,推测原因是域名解析的延迟——昨天挺晚的时候才把域名绑定到BlueHost的解析服务器上,导致和LetsEncrypt做域名认证的步骤发生了错误。BlueHost隐藏了这个错误,浪费了不少时间。

又是一篇流水账开启了这个十年的老博~

垄断又如何?

今天刷屏的消息自然是滴滴和Uber的合并案,小黑今天也凑一凑热闹。朋友圈里、微博里以及各大媒体要么分析合并的背后,新公司的未来,更多的担心两家合并之后的补贴取消,价格上涨以及服务水平下降。更有替易到呼唤反垄断法何在。有趣的是,当年滴滴快的合并的时候易到就曾向商务部和发改委举报,后来不了了之。不过我的观点和大多数人相反——垄断,没有想象的那么可怕。

 

遭到垄断肢解的两家最著名的企业——贝尔和标准石油,前者在1984年,已经过去了30多年,后者则遥遥在一个多世纪之前(1909。当时的技术发展和社会变化远没有现在演化的迅速——当然,人的思维往往比现在社会发展慢一拍——如果说当年的企业还能够通过垄断攫取大量财富,从而影响到社会公益和民众福利的话,现在的企业还想这么做,已经是不可能的任务。

 

首先,技术的发展使得技术壁垒和市场壁垒不再是牢不可破。至少在中期(3-5年)来看,这种壁其实相当脆弱。QQ时代的腾讯曾经那么如日中天不可一世,但如果没有微信,即时通讯甚至整个社交领域还很难说。百度垄断了搜索,前几年遭到360的挑战,更不提墙外虎视眈眈的谷歌。而阿里虽然基本垄断了C2C和B2B,但这个垄断地位并不牢靠。

 

微软的windows和office当年几乎可以算是标准的垄断,但从2003开始,特别是互联网和移动互联网的兴起以后,没有人对拆分微软感兴趣。10多年前电信运营商是垄断的标准靶子,现在也沦为管道。这些垄断者们,并不敢轻易通过市场地位随意支配,“欺负”消费者们。虽然体量大,但惦记的人也多。

 

新滴滴的对手,也许现在还没出现,也许只是一家小公司,但市场变得这么快,谁能保证它能一直垄断下去?大胆预测一下,如果无人驾驶技术有重大突破的话,肯定会诞生出行市场新的独角兽。

 

第二,现在市场的竞争早已不是同一市场内玩家的竞争,更多的是跨领域竞争。或者说认定垄断,要看如何界定这个市场。当年微软面对拆分诉讼时抗辩一个理由是,虽然桌面操作系统领域的市场份额是绝对垄断,但如果从整个操作系统市场(包括服务器),并不垄断,而如果从软件领域来看,微软占的市场份额并不大。

 

滴滴和Uber在合并之后,虽然在网约车这块达到了垄断的份额,但人们并非没有其他替代选择。放在全中国城市的交通市场来看,和出租车、公交车、地铁甚至租车和自驾相比,这个份额又不算什么。要知道普通民众远没有达到依赖网约车出行的习惯,3年前是怎么出行的还记得吗?更不要说后面还有易到和神州,以及各地(如首汽和大众)的出行平台。

 

第三,评判一个事情的好坏,要看它对整个市场的影响。两家在这个时候继续烧钱,只是把投资人的钱补贴给了消费者,并没有促进市场的继续扩大,或者边际效应已经非常低。天下没有免费的午餐,5块钱坐10公里肯定不能长久。把这个资金用来提高效率和服务质量才是根本之道。私有企业和公众利益并不是零和博弈,企业赚的钱越多,并不代表公众的利益受损。

 

互联网天生垄断,但我们看国内的BAT、国外的谷歌Facebook并没有对市场本身和工作利益造成损害(当然有人会对百度提出异议)。相反,要是不垄断,想象一下:要和好友聊天,手机上必须装微信、米聊、来往;要上C2C,要装淘宝、易趣、有啊、拍拍,这本身就限制了市场的做大。1+1>2的协同效应特别明显。

 

网约车开辟了几个全新的细分市场,使得有更高支付意愿获得更高服务的顾客可以享受专车;低消费能力的顾客可以选择快车;上下班还可以顺风拼车。而这些人,原来要么只能绝望地拦出租,或者吃力地挤地铁和公交。

 

大家都说,羊先养肥了再杀,可是羊除了杀了吃肉,还有好多种用法,可以剪羊毛、挤羊奶,还可以下羊羔养更多的羊。更别提养羊人的后背还有好多双眼睛在盯着,阵阵发凉。

旧书新读——《枪炮、病菌与钢铁》

这是一本近乎20年前出版的书(市面上已经有20年纪念版),1998年获普利策奖。手上这本应该是流传最广的版本(见题图),于2008年购得。之后曾来魔都实习,于百本书中挑选了这一本,可惜未读完。最近重新捧起,连小白都不禁问:“这本书你还没看完啊?”

 

一个问题概括这本书:为什么是欧亚大陆的文明最后统治了世界,而不是最早走出现代人类的非洲文明,也不是新大陆文明,更不是澳大利亚和新几内亚的土著(连文明都算不上)。

 

一个词概括这本书:地理决定论。

 

一个字:命。这也是这本书的副标题——人类社会的命运。

 

欧亚大陆有几大优势,首先是先发优势。人类大约在冰期才到了美洲大陆,大概距今1.3万年。不过这个优势并没有多少,因为那会儿欧亚大陆的人类也没发展出什么,基本都是过着狩猎的群体而已。没有农业,没有畜牧业,有上顿没下顿。

 

第二则是物种优势。欧亚大陆可以驯化的动植物远远多于新大陆。比如新月沃地(地中海东岸地区)驯化的小麦、大麦以及中国驯化的水稻、大豆。相比之下新大陆只有玉米和马铃薯。更关键的差距在于动物,特别是大型哺乳动物。欧亚大陆人驯化了马、牛,前者建立了强大的军事优势以及通信优势,而后者在农业上使得深耕和开辟更多的耕种面积成为了可能。相比之下美洲只有羊驼,显然这家伙帮不上多少忙。有的看法认为,美洲人自己把驯化的计划断送了——他们在刚登陆美洲的时候灭绝了这块大陆上大量的大型哺乳动物——欧亚大陆的人有多年捕杀大型哺乳动物的经验,同样欧亚大陆上的动物们等级也很高;而人类到新大陆上就是虐菜了,自然新大陆的动物们遭到了灭顶之灾。

 

第三,几乎是最重要的一点是传播优势。从地图上可以看出来,欧亚大陆两头窄,中间宽,东西长,南北短。物种东西向传播没有太多的阻力,因为相同纬度的温度、光照差别不是很大,非常有利于物种的交流。相反,美洲大陆是南北长,东西窄;更要命的是,中间还在中美洲地峡处收窄了,要翻越高山沙漠才能互通。物种南北交流也非常困难,气候差别很大。一个物种在欧亚大陆驯化了,很快就可以传播到整个大陆适宜的地方;而相同的事在新大陆上要花上几倍的时间。

 

第四,人口密度。确切的说是人口聚集。印第安人的最大谋杀者不是欧洲人的枪炮,而是他们带来的病菌,例如天花。这些病菌起源于人和驯养动物的杂居,但推手则是人口的大量聚集。事实上在征服新大陆之前,欧洲差点被黑死病(腺鼠疫)击垮。更不用说天花。在一次次的瘟疫过后,幸存的人们普遍带有了多种传染病的抗体,而上万年前分家的美洲人一下子无法面对如此多的病菌,95%的人口被杀死。

 

美洲大陆事实上并不小,达到了欧亚大陆76%的面积,本可一战。两个大陆的文明在1492年的地理大发现之后的碰撞,最后以欧亚文明彻底胜出而告终。“地理决定论”虽然有“马后炮”之嫌,不过算是目前看来最靠谱的解释(相比于“人种论”、“宗教论”)。

 

谁也没比谁强到哪里去,不是因为你的皮肤,也不是因为你信的上帝,仅仅是运气好投胎到这块地上了。

《创新者》- IT界的史记

这本书在罗辑思维上架当天,马上下单,下午书就到手(老罗家改用京东配送后的福利)。之所以如此毫不犹豫,原因有二。

 

第一,这是一本关于计算机的发展史的书。印象中似乎没有一本在这个方面特别出众的著作,从业人员的脑子里还是计算机等级考试里的那些枯燥乏味的时间线——电子管、晶体管、集成电路和大型集成电路。《创新者》从埃达讲起,抓住了这段历史中的关键人物和事件,并且梳理出了其中各处的联系和脉络。

 

第二,本书作者是当今传记类作家的头牌——沃尔特·艾萨克森。他最近最广为人知的作品是《乔布斯传》。除此之外,他的《本杰明·富兰克林传》以及《爱因斯坦传》也深受好评。不过,他的来历更有名头,新闻记者出身,曾经担任《时代》周刊的总编以及CNN的董事长。

 

回到《创新者》本身,本书的主线非常清晰。除了首末两章,每一章按照时间顺序排列,选取某段时间内的一个主题展开,并有丰富的细节以及简单的评论,留给读者不少思考的空间。

 

本书第二章讲述了计算机发明前前后后的故事,从乔治·斯蒂比兹的K模型,康拉德·楚泽的Z3计算机,到阿塔纳索夫设计的计算机,英国的巨人一号(图灵给出设计意见),艾肯与IBM合作的哈佛马克一号,最后是家喻户晓的ENIAC(埃克特与莫奇利)。这其中还包含了一宗著名的诉讼——阿塔纳索夫与莫奇利之间的专利纠纷。

 

1941年6月,莫奇利拜访了在艾奥瓦州埋头孤身捣鼓计算机的阿塔纳索夫,问了他一些问题,并有可能在其中得到了一些灵感。而另一方面,阿塔纳索夫虽然有一些想法,但并未真正做出成品,并且更要命的是,他的律师并没有把他的专利文书及时提交给专利局。

 

在莫奇利和埃克特获得了电子计算机的专利之后,阿塔纳索夫愤怒地诉诸公堂,当中还有声称有专利权的宾夕法尼亚大学。最后的结果是大家都没有得到这份专利,莫奇利的专利也被撤销了。法官认为,莫奇利借鉴了阿塔纳索夫的想法,但是电子计算机是由多个创新者的想法融合而成,并不为某一个人或者组织独有。

 

这也是本书的一个核心观点——创新不是闭门造车,不靠某个人的神来之笔,而是多名创新者复杂协作的产物。尽管如此,本书仍然给予了莫奇利和埃克特很高的评价,认为他是电子计算机发明过程中最重要的人物——即第一发明人。而图灵关于通用计算机的概念,则在理论上指引着计算机的发展。

 

后来又有一件更广为人知的类似事件——乔布斯和盖茨关于图形界面的纠纷,本书自然没有落下。法庭上的结局是类似的,图形界面的专利权无效。大家都记住了盖茨著名的评论:“我打算从一个富有的邻居施乐家里偷一台电视机,当我翻墙进去时发现已经被苹果偷走了。”

 

埃达有个著名的富有争议的论断:“无论如何强大的计算机也无法实现真正的思考”。这点上图灵不同意,认为几十年内会出现可以通过图灵测试的机器。本书写成之时,AlphaGo还没打败李世石。人工智能近年来的飞速发展,似乎让人看到了希望。不过最好的AI道路也许不是彻彻底底的人工智能(Artificial Intelligence),而是增强智能(Augmented Intelligence),让人脑和机器分别从事最擅长的部分,人机共存共生。

 

假以时日,编程将成为工作的基本技能之一,类似于现在熟练使用办公软件的要求——或者说,编程和英语奥数一样,也会成为家长们趋之若鹜的培训内容。

创业教皇的创业圣经

Peter Thiel鼎鼎大名,在硅谷无人不知,无人不晓。作为Paypal黑帮的老大,在创业界的地位自然没话说;而成功投资Facebook又使其在投资界名声大噪。他在创业界的地位,似乎只有Paul Graham能够与之抗衡。

 

 

本书源于Peter Thiel在斯坦福大学开设的课程CS183:『创业』的课堂笔记(即本书第二作者Blake Masters所记录),书里讲述了Peter大叔的创业哲学和一些商业理解。点击『阅读原文』可以下载到课堂笔记的epub版。

 

下面我挑几个有意思的部分谈谈:

 

『我们曾经想要会飞的车,如今得到的却是140个字符』

 

Peter认为,科技发展是从0到1的质变,而全球化是从1到n的量变。在1815~1914年期间,科技发展迅速,全球化也快速蔓延。而从一战到1971年,科技发展神速,全球化放慢。从1971年到现在,全球化加速,而科技发展仅限于信息技术。

 

记得有人说过,对于科学技术的发展,人们在短期内往往过于乐观,而长期来看往往过于悲观。也许从1971年到现在的时间仍然是『短期』,也有可能正处于大变革大突破(奇点)的前夜。但对于早已习惯科技突飞猛进的人们,近些年来的科技,似乎一点都没有加速发展的样子。物理、化学、生物等学科,以及航天、交通、能源、机械等行业,都无法和上个世纪前几十年相比,更别提类似制药行业内的『反摩尔定律』(每隔10年每10亿美元研发而获准生产的药物降低一半)。最近的时间内大家都似乎都忙着和信息业相结合,在另一个维度上创新。

 

『也许当今的中国是最典型对未来明确的悲观主义者』

 

Peter在书中对中国不太客气。在第一章里他认为中国近30年来的发展只是快速复制其他国家的道路,是从1到n的过程,不过拥有后发国家优势。GDP翻倍,能源消耗和环境污染也同比放大,并没有什么值得夸耀的地方。局外人(可能还有很多局内人)沉迷于国内的巨大财富,却没注意到大量富人正努力地把自己财富转移出国。

 

『如果你不知道格拉德威尔是赶着婴儿潮出生的人,你也就不能理解他的言论』

 

在Peter眼里,成功中运气的成分比大多数人想象的低的多。他也不忘直接挖苦《异类》的作者格拉德威尔,后者通过综合数据认为在婴儿潮之间出生的人(如比尔盖茨和乔布斯)更容易获得成功。

 

『每单1000美元的生意最难做』

 

如果平均销售额在百万美元甚至以上,你必须使用复杂的销售技巧,努力经营和每一个客户的关系,即使需要几年的时间才能达成生意,并提供长期的售后服务。你不太需要专门的销售,相反,CEO必须亲自承担销售的工作。例如Musk的SpaceX公司与NASA签订的10亿美元大单。另外电信市场也很类似。

 

如果平均交易额在1万到10万美元左右,你需要建立精悍的销售团队向客户推销产品。例如Box公司的企业云服务。而所谓的企业级市场也主要在这个区域。

 

每单100美元左右的生意,你需要做好营销,因为销售成本明显太大不划算。购买广告、印优惠券是最好的做法。

 

而如果更低的话——10美元以下,那更适合采用病毒化营销。Paypal创立之初,通过直接给客户送钱获取客户,并让他们邀请其他人注册获得更大的优惠。只要客户获取成本低于客户带来的价值,生意就能进行下去。

 

而中间一个区间——1000美元左右的市场,是不折不扣的销售盲区。雇佣销售成本偏高,而营销的方式又很难打动客户,广告效率太低。这也是小企业难做的地方。

 


 

《从0到1》的篇幅不大,适合快速阅读(不知道为何出版社要做成精装,每一页还有超大的页边距和行间距,携带反而不方便)。其中的观点各位可自己斟酌,如有读者是创业君,里面有不少章节可以细细品味,或者和当前的情况一一对照。虽然不一定符合中国国情,但也可供参考。

 

双职工装修狗的少数派报告

前言

    2015年2月5日,距离开工整整3个月,Q4最重大的人生大事——新房装修,总算结束了。是硬装部分的结束,也算是阶段性的胜利吧。从买材料到找装修公司再到现场执行全是小黑和我两个人搞定的,没太耽误上班,也没弄到披头散发、神经衰弱,想想自己好像也蛮厉害的样子~ ^_^

    写这个小结有点马后炮的味道,也不算什么经验分享,只是把自己经历的记录下来,给自己提个醒,有哪些是下次(如果有下次……)需要额外注意的地方。

 

 前期准备·设计篇

    人生第一套房2014年9月底才能拿房,当时想着装修要3个多月,要是想年前完工的话,最好拿到房就可以开始施工,那就得在拿房之前把设计的活儿干掉,所以我倒退了一下时间,从8月底开始找装修公司。

    完全没有经历过装修,找装修公司就是靠各种朋友推荐外加篱笆网看看帖子,我始终觉得篱笆网的口碑不能完全相信,一方面在于装修公司会有专人运营论坛的帖子,负面的多半会被删掉,另一方面在于一家装修公司整体靠谱,并不代表你碰上的设计师and队长and工人就靠谱,这个组合要靠谱,90%应该是靠人品。也许是因为一开始就抱着这种“装修找谁都一样是个坑”的信念,后面我才能觉得自己家装的还可以,没什么大bug。预期较低吧,哈哈。

    我一共见过7家装修公司,包括类似小米家装的“装修E站”和吐槽超级多的“百安居”,拿到的报价也是差距极大,最近细细的比较了下报价,报的便宜的都是在材料上给你报了知名品牌最便宜产品的价格,实际装修的时候,要用好看一点的,价格自然就上去了。还有吊顶啦大理石这些费用,一开始也不会报在里面,让你觉得全部装完还蛮便宜的,其实无论吊顶大理石是自己联系买还是包给施工队,都不是一笔小费用。如果装修公司跟你说“半包8万”那你就要当作“10万-11万”来留预算。

    如何确认一个设计师是不是靠谱&合适?在这个问题之前,每一个装修的人都必须坚定一个信念:这个房子是我住,我要按照自己的想法和喜好装修它。不然很容易被设计师带沟里,设计成“设计师擅长的风格”。比如我,喜欢家里四面大白墙空旷的感觉,曾约了一个设计师聊,当我跟他说完“我只想要四面白墙,不需要打什么柜子”的时候,他笑我说“四面白墙多难看”“真没见过还嫌家里储藏空间多的”。这样的设计师我给差评。我希望设计师能听完我的基本需求和喜好之后,给予一些细节上的建议或者空间利用上的新的idea,好的设计师应该是尊重和理解客人的审美的吧。此外,态度也挺重要的,用心一点的设计师在约了第一次见面的时候都会拿出房型图,跟你说一些他的想法,听听你的意见。当然,也碰上过极度不上心的,初次见面的时候就拿了本他们公司设计的作品集,半炫耀的在给我看他们给别人设计的房子。最后,提醒大家,最初约N家装修公司聊初步方案是不需要付任何定金的,在有很强烈意向之前,不要付一分钱。

    “设计师管外型美观、工人管施工便捷、业主管生活便利” 在看设计师给出的图纸的时候,一定要考虑一下是不是符合自己的生活习惯,方不方便日后的清洗。我的厨房是半开方式的,设计师一开始帮我设计成了全石膏板吊顶,后来在我的坚持下换成了铝扣板。因为厨房有油烟,吊顶上还有管道,万一要检修,敲石膏板吊顶就太夸张了。当然,设计师肯定会跟你说“不会那么容易坏的”“用好一点的脱排不会有油烟的”,请不要动摇,以后设计师又不会来帮你打扫卫生。

    电路图、水路图一定要设计师出。全套图纸里一定要有这两张图哦,曾经见过朋友家的强电分配没有图纸,全是电工师傅现场脑补,结果好多bug。电路方面,尽量多分几个回路,用大一些的电线和开关,因为家里的电器会越来越多,功率也都会很大,比如烤箱、烘干机、油汀,现在没有不代表以后不会添置,电路这样的隐蔽工程一开始做的到位一些比较后顾无忧,虽然这样会导致水电部分开销较大(回路多了,电线自然多),但我觉得值得。

    效果图是需要额外收费的,几百块钱一张也不便宜,个人觉得不是很有必要,毕竟渲染出来的效果图和实际装修出来还是会有些差别的。装修公司免费提供sketchup 3D模型图就基本足够了,看清楚吊顶的样子,格局划分、一定要跟立面图纸对应上哦,工人是对着立面图施工的。

    光看图纸是不会知道以后家里会长成什么样的,请让设计师多给你找一些类似格局、类似风格的图给你看看。如果设计师给你家设计了一些你从未见过的元素,电视机背景墙啦、不锈钢的封边条啦、玻璃装饰墙啦,请一定要设计师给你看实物图。我就是凭脑补补出了心里落差……

    设计师除了画图之外,还有个功能就是陪着买主材,地板颜色、瓷砖样子、卫浴都可以带着设计师去买,或者告诉设计师你喜欢这些样子的主材,让他的设计风格适应你要的主材的样子。有些时候你喜欢的东西单独看都很好看,但放在一起未必那么美,让设计师帮忙把关,至少能保证不太丑。

    最后,感慨一句:还好我找到了一个还算不错的设计师。(不做广告,有意询问请私聊)

 

预算·主材篇

    虽然很多人都说预算做了也白做,反正都是用来超的。但我觉得预算还是很有必要的,至少让自己知道钱都花去哪里了,一项材料买超了预算,我会尽量在另一个主材上填补回来,最后执行下来,预算超了14%,我觉得还算可以接受的,也算控制的还ok的。

    我和小黑都要上班,也只有周末才有空跑建材,所以前期做预算的时候多半是天猫的价格上浮20%做参考。预算表里分了“主材、厨电、家电、家具、其他”几个大类,之所以预算把家具家电也算上,是要考虑下自己的整体承受能力,不可能所有钱都砸给硬装,后面借钱买家具吧。

    最费钱的主材是:封窗(你绝对想不到封窗有多贵)、瓷砖、卫浴、地板、木门、橱柜。这些订好之后基本上预算就去了一大半了。主材主要的几个卖场:建配龙、美凯龙、金盛、宜山路、九星。建配龙:有点远,价格比美凯龙便宜点点;美凯龙:啥都有,有一些牌子唯一一家店就在美凯龙,那只能这里买;金盛:貌似瓷砖这里便宜;宜山路:一条街啥都有,橱柜、水槽、龙头、灯,我当时几乎每周逛一天宜山路;九星:龙蛇混杂,啥都有,啥都便宜,分不清真假。

    除了讨价还价的能力之外,买主材的时机也很重要,经历过十一、双十一、元旦等各大促销的我靠谱的说一句:还是十一的折扣最给力!只要付个订金就可以享受当时的价格了。此外,各类主材都推荐集中在一家买,比较省心,一方面买的量多,可以讨到更低的折扣和更多的赠品(我买瓷砖就让店家送了10平方的隐蔽砖,还免费搬楼),另一方面协调送货时间更方便,不用总在工地等着或者天天去工地等着各家来送货,毕竟装修狗平时也是要上班的,各种送货的时间我都会尽量约在一天,并发处理比较省时间。

    有哪些东西是可以通过京东啦淘宝啦搞定的呢?五金件、灯具、地漏角阀、镜子、水槽、洗衣池这类东西可以的。我家镜子就200块,洗衣池加上龙头才300块。不过这类大件只发物流,需要自提,沉还是挺沉的。

    最后,几个买主材的有情提醒:1、买瓷砖一定要店家送隐蔽砖包搬楼,你绝对想不到一块瓷砖有多重,16公斤!一块瓷砖!2、买卫浴也要跟店家谈搬楼,特别是你买浴缸的话,一般卫浴是不包的,但是加点钱可以。3、各种主材如果需要上门测量的一定要量,我家的门就矮了一丢丢,非常心塞。4、不要对各种“品牌特卖会”太给予希望,现场出样的东西都是比较丑的,你想要的都没有,销售只会忽悠你现场下订金,享受一个较低折扣,再去门店挑样子。

 

施工·安装篇

    说来说去现在才入正题,开工了才是战斗刚刚开始,考验心态的时候终于到来了。   

    装修的主要3个阶段:水电、泥木、油漆。大家都会说“水电是最重要的,要盯紧”,可我们作为门外汉和双职工,即便电线、水管是我自己买的,我也不能保证工人装上去的就是我买的部分,也许有掉包呢,谁知道呢。所以我是真的“两只眼全闭”的在装修,电线、油漆、大理石都是含在半包里了,大家千万别说我土豪或者对自己的房子不上心,我们只是不懂又没精力到处跑了比价,也许自己去买也是被人骗呢,我们宁愿省点精力下来赚钱。

    其实水电并不太麻烦,开槽后确定好位置,想好以后放了家具会不会挡住一些开关插座,插座网口是不是足够(我家有七八十个插座)就基本ok了,验收的时候会有设备专门去测插座有没有电,网口通不通(淘宝就有的卖,也很便宜)。

    泥木是最心塞的,特别是做好水电、装好中央空调后会发现原来的吊顶设计图根本盖不住管线。在做木工的时候,因为吊顶的事纠结了好几次,改来改去的。一定要保持良好的心态,这样的反复修改是正常和必经的过程,遇到不用心塞,想好自己能接受的样子是什么样的,问一下工人和设计师这样改动会不会对其他环节造成太大影响,然后协商一个折中的修改方案就好。有时候工人很倔强(其实是懒),不肯改动,直接给队长打电话说明意图是最直接有效的,队长自然会安排工人做事。

    做吊顶的时候预埋的脱排烟管、煤气管道都要提前埋好。煤气管是个很坑爹的玩意,煤气公司的价格超级贵,大家可以找一些专门做这个的公司来做,价格实惠不少。

    贴瓷砖没啥特别的,就是得注意砖越小,人工越高,如果是需要拼花的瓷砖,一定要给工人铺贴图,不然工人很容易贴错,或者贴不成你要的样子。铺贴图这个东西,有的瓷砖卖家回出,如果没有,就压迫设计师帮你出吧。哪些地方用隐蔽砖也要标清楚的,不然工人全部贴了好砖,费用很高的。

    至于要不要找装修队现场打柜子这个老生常谈,我觉得,一些尺寸比较尴尬的位置,没办法买到合适的柜子的,可以打。比如我家厅里面有一根水管,我就打了个立柜包住;卫生间买不到那么长的台盆柜,我就让木工现场打了一个。打柜子的好处:尺寸刚好,没有卫生死角,顶天立地,空间利用最高;打柜子的弊端:不方便移动,需要自己定做柜门,见光面,价格不便宜。所以这个问题上继续见仁见智啦。

    油漆工进场的时候,基本已经过了最艰难的时候了,我全家大白漆,没有什么调色的问题,所以油工干活儿比较方便。说个关于油漆的小插曲:某天去工地的时候正好看见刚送来的油漆,工人又不在,我就刮开了两罐多乐士包装筒上的防伪码,验了真伪,证明这个筒的确是真的,不过里面的漆,我就真的不知道了。油工退场那天,我看见被我刮开过的那两个油漆桶被当作垃圾扔掉了,其他的油漆桶没了踪影,估计是拿去“再利用”了。如果上天再给我一次机会,我就算刮破指甲,也会把整箱油漆的防伪码都刮开的。

    一遍面漆过后,就可以装橱柜、木门、地板之类的主材了。橱柜是要两次的,一次柜体一次台面。地板先装,然后是木门。安装这些东西非常非常的脏,特别是台面和木门,切割下来的粉末和木屑满屋子都是,建议大家去工地一定要准备一套“专用服”,衣服裤子鞋子包包,都要是弄脏了不心疼的那种,装修完扔掉都可以。

    最后安装的是卫浴、水槽、龙头、灯具、五金件,水电工2天大概就能全部弄完,只要交代清楚安装位置就好。顺便表扬一下我家的水电工师傅,非常好沟通,领悟力超级强,交代一遍就可以,装的又快又好。

    关于中央空调,单独提醒一下,无论大金还是格力,都是经销商负责安装的,各家经销商的服务、报价都有差别,前期需要多沟通比较。一般经销商一开始就会要求“上门实地测量”,请一定要拒绝,不要轻易透露自己的住址,因为有个恶心的制度叫“报备制度”,详情大家可以百度。当然,你已经定下来让哪家来做中央空调了,就可以让他来测量出图纸了,这个图纸是需要给到设计师看一下的,要和他的吊顶图配合的。

    装修期间不免要经历很多的询价,大家要尽量保护好自己的住址信息哦,虽然我们的个人信息已经被各种渠道卖的差不多了,但还是不要轻易的透露具体的门牌号码比较好,询价阶段,万不得已要留个地址,留到街道多少号就差不多了。

 

后记

   小白和小黑两个人历时3个月装出来的新家,不敢说一点bug没有,也不能说和自己设想的完全一样,只是觉得,我们花费的精力、纠结、投入的人民币和现在看到的效果还是对等的。能把屋子弄成现在这样,我们已经觉得自己棒棒的啦~

   感谢老公连续3个月的早起跑工地!

C++随记(2)

很简单概念的复习,对构造函数、拷贝构造函数和赋值函数:

  1 #include <stdio.h>

  2                           

  3 class Bar

  4 {

  5   public:

  6     Bar() {printf("ctor\n");}

  7     Bar(Bar& b) {printf("copy ctor\n");}

  8     Bar& operator = (const Bar & b) {printf("assignment =\n"); return *this;}

  9 };

 10 

 

 11 void foo(Bar b)

 12 {

 13 }

 14 

 15 int main()

 16 {   

 17     printf("Ctoring bar1\n");

 18     Bar bar1;

 19     printf("Ctoring bar2\n");

 20     Bar bar2 = bar1;

 21     printf("Ctoring bar3\n");

 22     Bar bar3(bar1);

 23     printf("Assigning bar3\n");

 24     bar3 = bar2;

 25     printf("Pass by value bar3\n");

 26     foo(bar3);

 27     try

 28     {

 29         try 

 30         {   

 31             printf("Throwing bar3\n");

 32             throw bar3;

 33         }   

 34         catch (Bar& bar)

 35         {   

 36             printf("Rethrow bar3\n");

 37             throw;

 38         }

 39     }

 40     catch (…)

 41     {

 42     }

 43 }

       

 
输出结果为,特别注意拷贝构造函数的几种调用方式,特别是最后的异常处理,强制pass by value,即便声明了形参为引用传递。
Ctoring bar1
ctor
Ctoring bar2
copy ctor
Ctoring bar3
copy ctor
Assigning bar3
assignment =
Pass by value bar3
copy ctor
Throwing bar3
copy ctor
Rethrow bar3
 
p.s. OSX终端的拷贝功能居然包括控制台背景和颜色。

魔都地铁的新名字

前不久看到网上流传一个上海地铁线路图日文版(题图),除了专业的标示以外(比如急行),还给一些线路起了文字名称。

 

大家都知道,大部分国内的地铁的线路都是按照数字进行编号。少数的例外是深圳,不过现在又都加上了数字号,另外就是北京的一些郊区线路,比如房山线、昌平线、八通线等等。数字编号本身没什么特殊意义,难以记忆和联想,对于不熟悉线路的乘客较不方便。

 

反观海外的一些城市,线路大部分以文字命名,或者是文字+数字的方式,比如东京、香港、伦敦和纽约。计划经济的老大哥——莫斯科地铁也是使用文字命名。

 

一般来说,线路的文字命名有以下几个规律(以东京、香港为例):

  • 连接主城区和郊区的线路,以郊区命名,乘客对于线路走向一目了然,如荃湾线、东涌线

  • 穿过市区知名地区(车站)的线路,以该知名地命名,如有乐町线、银座线

  • 以线路走向命名,如东西线、南北线

  • 以线路走行的区域命名,如港岛线

 

不才斗胆按照一些惯例给上海的地铁线路取新名字:

 

1号线——南北线:纵贯市区南北,基本沿着浦西的中轴线,北段和南北高架完全重合;

 

2号线——东西线、机场线:串起两大机场,基本上完美地把市区划成南北两块;

 

3号线——明珠线、宝山线:3号线本名就是明珠线,另外其直通宝山城区

 

4号线——内环线、环线:很直白

 

5号线——闵行线:只在闵行腹地穿行

 

6号线——浦东线:只行驶在浦东地界

 

7号线——美兰湖线、静安寺线

 

8号线——杨浦线:穿过杨浦核心地区

 

9号线——松江线:连接松江与主城区

 

10号线——虹桥线:虹桥枢纽重要线路,连接机场2个航站楼和火车站

 

11号线——嘉定线:连接嘉定与主城区

 

12号线——龙华线、复兴岛线:其实这两个似乎都不太响亮,如果叫提篮桥线那绝对霸气侧漏

 

13号线——世博线、普陀线:当年世博园内区唯一的地铁线路

 

16号线——南汇线、滴水湖线

 

22号线——金山线

 

当然,现在数字命名的地铁线路已经深入人心,不可能再更改,所以也只是YY。但是如果能借鉴北京的做法,把郊区线路单独用文字命名,不失为一个两头兼顾的好办法。

 

===========================

 

小白小黑开了个微信公众号,公众号 – “黑白杂谈”, 微信号 talking_ted,或者扫描下面的二维码,欢迎大家踊跃关注。

C++随记

在析构函数中抛出异常,如果这时候已经有一个异常的话,程序会崩溃。

参考:http://www.cnblogs.com/KevinSong/p/3323372.html  ,以及《Effective C++》第8条。


  1. 构造函数中抛出异常,不会自动调用析构函数。但是已经分配的内存会自动释放,另外已经自动构造的成员变量会调用析构函数。
  2. 例如,在new Bar()中,Bar的构造函数抛出一个异常,不会自动调用~Bar(),成员变量的析构也不会调用
  3. 如果是成员变量的构造抛出异常,情况类似,不会调用成员的析构,即使是已经构造过的变量new结果返回NULL,因为对应的内存已经被释放。
  4. 结果是很有可能造成内存的泄露和资源未释放
  5. 抛出异常时,在退出当前堆栈之前,会自动析构当前作用域的本地变量。这也是C++异常处理不需要finally的原因。如果是动态构造出来的还需要手动处理,或者使用类似smart pointer机制。

参考《深度探索C++对象模型》7.2节。

就上面两条短评一下C++的异常处理机制。相对与Java当中的广泛应用,C++中的异常处理似乎受到人们的冷遇。我想有以下几个原因

  1. C++很多情况下被当做面向对象的C使用,一般局限在封装、继承和多态,高级功能使用得不多。Java没有类似的包袱,异常在各个类库里都是重要的组成部分。
  2. Java的finally机制更容易理解。stack unwinding的想法固然好,但是使用起来却容易顾此失彼。
  3. 缺乏checked exception机制。一个函数如果可能会抛出异常,那就需要在编译期解决这个问题。调用一个第三方类库,却不知道什么时候会抛出异常,用的人也是步步惊心。

在父类构造函数中调用虚函数,由于子类还没构造完成,虚函数表未建立,调用的还是父类的实现。如果调用的是纯虚函数,则程序会直接退出。事实上gcc会给出编译警告。

把子类变量赋值给一个父类变量,即使传值拷贝,也不会拷贝虚函数本身。即父类变量(不是引用不是指针)无论如何不会调用子类的虚函数。

法航447的最后时刻

(三年前我翻译的旧文,在东西网首页呆了一天,翻出来发现和MH370有惊人的相似。唯一的好消息是暹罗湾水深较浅,天气也比狂暴的南大西洋要好,打捞残骸和还原事实真相应该会比法航更快一些。)

 

今天(注:2011年5月27日),法国航空管理当局第一次公布了法航447航班飞行记录仪的一些细节。该航班两年前从里约热内卢起飞后坠毁于大西洋中,造成机上所有人员死亡的惨剧。新近公布的信息基本还原了事发的大概,但也引发了人们对机组人员处理措施的种种疑问。

两年来,航空界一直在等待法航447航班黑匣子来揭开飞机失事的具体原因。今天法国航空管理当局发布了一份四页长的一手资料。尽管不够详细,不过已足以描绘飞机在坠落南大西洋前几分钟的大致场景。

 

AF447的黑匣子(图中为飞行记录仪)


数据记录仪(译注:黑匣子是飞行数据记录仪和座舱通话记录仪的俗称)讲述了一个混乱的故事:格林威治时间2009年6月1日凌晨2点钟,当447航班即将进入一片暴风雨区域时,两名副驾驶中的一个,通过机上广播系统通知乘客航班即将经受更大的颠簸。同一时间穿越这片区域的其他跨洋航班却选择了绕道而行。显然,飞行员相信他们可以在气象雷达的帮助下安全穿过。2点08分,一名副驾驶对另外一名说:“你可以往左偏一点。”然后飞机稍微向左转了一点。

不过,天气显然比机组预想的糟糕得多。仅过了2分钟,自动驾驶仪便断开,迫使一名副驾驶改用手动驾驶。他向后拉操纵杆,使得飞机在左转时开始爬升。尽管仪表上显示速度正在急剧下降,他仍然一直向后拉操纵杆。接着,飞机开始失速。由于升力急剧丧失,飞机以10000英尺每分钟的速度急速下坠。

 

2点14分,447航班以107节(译注:1节=1海里/小时)的速度触水。坠机时机头仍然朝上,大约朝上16度。

 

 

这份报告透露了哪些鲜为人知的细节?第一,它基本证实了上周流传于媒体之间的流言:紧急情况出现时,机长不在驾驶室内;另外,在出现情况时机头向上抬升,加剧了失速。飞机的速度和角度解释了之前复原残骸的一些情形,比如飞机下方受到明显挤压。

 

今天爆出的另一则真相则是控制飞机的副驾驶在最后关头一直在尝试抬起空客330的机头。即使是再没有经验的飞行员也知道,没有什么比在失速时尝试抬起机头更愚蠢了。暂时只有两种解释,其一是飞行员吓坏了,而另外一个解释则是飞行员相信飞机并没有失速,而是被卷入了一阵剧烈的下沉气流,这些气流在暴风雨天气时可能高达时速100英里。

还有一惊人发现是,飞机失速时还一直保持着高机头位置。一般来说,当飞机失速时,机翼失去升力导致机头下沉,从而飞机可以重新获得速度并从失速中改出。但在这次事件中并非如此。航空工程师Martin Hollman告诉《大众机械》杂志说,“我曾经研究了大量的飞行事故,其中有些就是让人如此百思不得其解。”

最有可能出现的情况是,飞机在短暂爬升后进入了飞行员称之为“半失速”状态:一种较为温和的失速。此时机翼仍然有部分的升力而同时水平尾翼还有部分的空气动力可以保持机头朝上。如果是这样的话,那阻止机头下沉的唯一因素就是飞行员一直拉着操纵杆了。

晚些时候,法国当局会公布黑匣子里的更多细节,希望能够解开法航447航班的所有谜团。“目前我们只掌握了一些零星信息”,航空公司飞行员及飞行顾问Christophe Nutter说,"目前手上的资料并不能还原出事件的来龙去脉。我们还需等待。"
 

作者简介:Jeff Wise是《大众机械》的撰稿编辑,也是《Extreme Fear: The Science of Your Mind in Danger》的作者。如果你想看看每天一个极度恐惧案例,猛击他的博客吧:http://jeffwise.net/

 

===========================

 

小白小黑开了个微信公众号,公众号 – “黑白杂谈”, 微信号 talking_ted,或者扫描下面的二维码,欢迎大家踊跃关注。