网络寻租

Programmer, Gamer, Hacker

为什么要阅读长文章

| Comments

我们平时会在社交媒体上面获得各种信息。 他们的一个特定是信息碎片化,一篇内容只有几十字。 这种内容可以快速阅读,也能够在碎片时间里面看完。 但是这些碎片化信息带来了几个问题:成瘾性加重时间碎片化,以及内容的片面性。 我现在讨论内容片面性的问题。

我们接收到的信息一般是消息,什么地方发生了什么。 更重要的一些信息是对消息的分析。消息经过分析(自己或者他人)后,我们才可以对消息进行利用。 无论是消息和分析,碎片化都不能提供足够的信息量。

把一件事物论述清楚,需要做的事情:

  • 列出事物的起因经过
  • 考虑事物本身的准确定义以及本质
  • 分析事物产生的原因和环境
  • 界定范围:不要茬题,不要引入太多不重要的概念和内容
  • 如何应对:各种方案的实施方式以及后果

这里面的很多信息虽然可以根据读者知识背景隐去,但是还是需要足够的篇幅才能讲清楚。如果限制篇幅,就会产生这样的问题:

  • 丢失逻辑链:结论本身是变动中的,可能一个局限条件变化了,结论就完全飘向另外的一个方向。如果缺少逻辑链,文章就是对读者进行结论的洗脑。
  • 丢失限制条件和环境:逻辑链依赖于环境,不同的环境推出不同的结论。读者和作者没有对环境约定一个共识,那么读者看文章只会带来误解。

碎片化信息压缩文章到几十个字,结论部分都没有办法写全。 一般的读者看到文章只会被误导。这样的信息可以说是有毒的。只有文章足够长才能很好地解决这些问题。

但是并不是所有长文章都能够把这些问题都处理得好的。好的长文章具有以下的特点:

  • 逻辑链充分:文章的各种推论都是符合逻辑的,并不是类似读者文章这种强行粘贴结论。
  • 可能性完备:文章讨论到了各种可能性,把所有点都讲清楚了。
  • 来源引用:文章中的所有知识都有来源,可以是明文引用,也可以是作者经验,并不是作者猜测和乱说的。

我个人很喜欢看这些长文章,因为它们把事物分析透彻了,看完一篇这样的文章, 同样主题的文章几乎不再需要看了。节约相当多阅读其他碎片化信息的时间。 文章本身把事情讲透了,在事物没有变化之前,其他人没有更多可以补充的了, 它就会成为一个“不动点”,可以长久存在。

但是我们现在不太看长文章,有几个原因:

  • 大量成瘾性的碎片时间阅读,挤压了成片精读时间。
  • 现代社会复杂的生活和永远在线的干扰,占用了我们大量的精力。

解决方法我也不说了,大家都是聪明人,自己会想到办法。只是做得到做不到的问题。

有哪些精品长文章可以看的?

  • 教科书和书籍:对于大多数有定论的信息,一般都有对应的教科书和书籍可以系统性阅读,网上的各种段子都可以不用看了。
  • 资深媒体:对于即时性比较强的信息比如新闻,资深媒体可能会有一些好文章出来,但是可遇不可求,在此之前我倾向于不被一些“浅分析”占据我的头脑,保持对结论的开放态度。

家装设计策略

| Comments

这里整理一些家装的要点:

实用第一: 家是自己用来住的,住不舒服每天都会难受,样式差了看久了也习惯了。

设计先行: 先期设计一定要充分,工程中出现问题不能敷衍一定要搞好。 开工之后设计问题都需要钱来弥补,所以不要急着开工。 工程中出现问题都是可以改的,不要省钱放过,后期想改就难了。

轻硬装重软装: 硬装的部分,除非水电等固定都要用的项目,造型因为大家的喜好不同,是不会一致的。 所以房子卖出去的时候,造型往往会重新做。这就造成了这部分的投入是损失。 所以除非自己非常喜欢,不要在硬装造型上面花费钱。 当厌倦旧样式的时候,软装可以调整,硬装就难了。 家具,软装的东西可以搬迁,所以可以投入钱。并且好的家具对室内品质提升很大。

少做吊顶:中国房子层高有限,顶太矮了会比较压抑。 用射灯需要吊顶,可以考虑明射灯,或者后期加上台灯, 其实住家开射灯的情况比较少,电费也多。

大量收纳:能够做收纳的地方做收纳,最好能够有储藏室,衣帽间。 储藏房间里面可以不做柜门(成本比较高),往往比起明柜的成本要低。 收纳区域:入户收纳(鞋,衣物和杂物),衣物收纳,杂物收纳, 厨房收纳,卫生收纳(扫把吸尘器,洗衣,淋浴用品,卫生用品)。

推迟付款:购买项目能够延后的延后,晚付款的晚付款。 分期付款,家装周期3个月,三个月的工资就能够补上好多了,装修过程就不会那么紧张。

乐从选购家具经验

| Comments

最近我一直在忙装修,新房在江西上饶。在我们这样的小地方,很难挑家具:

本地存在家具城,但是因为受众的原因,家具样式都很差。 于是我十月趁着去深圳参加Ruby大会,就去国内的家具集散地乐从看了看。

在去之前,我做了一下功课。乐从那边有十几公里长的一条家具售卖街,真要逛是逛不完的, 并且也没有必要逛完,因为大多数的东西差不多,以及只需要选择自己需要的家具就可以。 去之前要看好自己喜欢的风格,可以去各大设计网站(比如to8to,篱笆网等)看图片,挑样式。

到了乐从,可以先去罗浮宫这种面对消费者的家具购物中心看样式, 看最好的家具怎么样,挑选自己喜欢的样式,询价,问家具规格。

心中有了谱之后,就可以去主要是做批发的皇朝国际家具城了。(就在南边一点) 快速找到自己想买的样式,确认做工和靠谱商家,询价。

需要注意的是看清做工和用材。大多数普通的家具厂商的样式都是抄来抄去的,所以品牌不重要。 找到几家供应商,询价,然后压价购买就好。注意一定要看清楚是靠谱的供应商,因为是外地购买,商家做点手脚很麻烦。

小知识:

  • 皇朝是做批发生意,店面租金非常贵,一个小店面一个月有12万,罗浮宫反而更便宜,因为是做散客的,流量不大,一个客户吃好久。
  • 在小地方,家具的价格反而和大的地方差别不大(莫非是因为店租便宜?),但是样式很少。
  • 如果想买便宜的家具,要找厂商,省掉中间商的成本。但是需要你自己盯做工。

我们市面上可以看到的常见家具样式有:

现代系列:一般的家具城主打。各类板材家具,客厅纯色皮沙发布沙发。 他们的共性就是丑,一眼望去毫无购买欲望。这些也是普通中国人主要购买的家具品类。

土豪系列:美式,欧式,红木。各类家具城顶楼。美式欧式完全是中国人认为的美式欧式,俗不可耐地透出一副土豪气息。 加上红木家具,可以说是土豪三剑客。我们还是敬而远之吧。

乡村原木系列:你去一个小馆子,里面用的餐桌长椅如果是原木的,那么就是这种风格。 这些家具是实木的,也很便宜,但是千万不要买这种样式的家具以及这种颜色的家具,因为别人到你家会以为到了农村。

咖啡馆风格系列:你去一个咖啡馆,里面的家具都挺有风格的。你觉得很不错,就去淘宝上面看同样的样式。 但是千万不要买这些家具,因为风格太重很快就看腻,回家会觉得去咖啡馆,还有就是这些家具有风格无质量,用了一段时间就不堪使用了。

好了,下面是一些我觉得可以用的家具:

北欧系列:主要的代表作是宜家。设计过的样式至少有一定的美感,价格也实惠,因为材料主要是板材,实木主要是用便宜的松木。 淘宝也有大量的仿品,但是做工和样式比不上宜家。 这种系列适合出租一族使用。作为已经购买长期居住的房产一族来说,这样的家具有点廉价了,用一部分可以,如果全部使用就太low了。

有品质现代系列:虽然和平凡现代系列差不多,但是你就是会觉得看起来不错。因为他们都是有设计师参与设计和调整的, 做工也更精细。平如lifemaster,coomo之类。

简约系列:包括日式,原木,总之给人一种小清新的感觉。特点是清爽,缺点是家里要收拾好,一乱起来就不好看了。 这种系列的家具看起来纤细,但是价格却不纤细,虽然用材少,但是做工和设计感要求很高。 比如moji,梵几。

真欧式:这个是真正的欧式了,虽然花纹之类和土豪欧类似,但是你怎么看怎么觉得好看。 不建议普通人买,它们的价格很高,因为往往是国外品牌,比如FFDM

真美式:和土豪美式比起来简单多了,具体大家可以在美剧里面看到这些样式的家具,或者去houzz.com网站上面去看。 不做作,适合居家,东西乱一些也不影响风格。我选用的家具就是这种风格。 品牌国内有卖的是HarborHouseashely,都是很正宗的美式。 不过要注意价格也不低,家具往往是板木接合的。

家具材料:主要分板材,板木结合,全木(不同位置不同类型木材)。 家具行业的实木家具,其实指的是板木结合,不要被骗了,原木家具才是全实木的,这个要问清楚。

木头种类很多,从便宜的松木,柏木,到贵一些的:桐木,胡桃,以及比较贵的:白蜡木,白橡,红橡,然后是好贵的红木。他们的特性和价格都比较公开,可以搜索到。 做工上面还有表面是否贴实木皮。板材上面贴木皮,以及便宜木头上面贴好看木头实木皮的工艺。 木头的接合方式,大家一般常见的是指接木(木头连接处是锯齿),这种是比较廉价的实木家具。好的实木家具不会用指接,而是用整块板,或者榫接。

家具的门道太多,具体我也说不完,大家还是自己去搜索收集吧。内容太多了。

对于家具材料,我的看法:

板材性能好,样式多,其实挺好的,建议买,但是会有廉价感,以及要考虑环保,因为板材家具里面甲醛多,一定要选用正规的家具厂商,比如宜家这种。

板木结合价格实惠,样式又不显得廉价,以及弥补了全实木家具面板容易开裂的缺点。不过需要工艺好才能看不出来。 HarborHouse就是板木接合的家具。A家家具之中有几个系列是板木接合的,样式差了那么一点点。

全实木的价格就比较贵了,如果你想要买有品质的家具可以用,要看清楚木头的材料,品质,以及做工。

关于沙发:布艺沙发看起来好看,价格也便宜。但是难清洗(尤其是对于浅色的沙发), 可以换洗的布艺沙发没有什么意义,因为洗了之后就不好看了。 所以布艺沙发属于消耗类的物品,几年一换。

皮沙发,昂贵,舒适,但是门道很多,皮的类型有很多种,国内经常用的是封闭皮,有更好的国外人一般用的油蜡皮,基本免维护。 具体就不展开了,请自行搜索。

家具行业大多技术含量不大,比如沙发,进材料(皮,木头,海绵等),作坊式人工组装,同质化严重,样式抄来抄去, 所以品牌的因素影响不大,挑到靠谱的供应商即可。很多家具品牌都是找人代工,自己没有生产。 他们可能固定一家,也可能全球找供应商。我挑选的是一家家具厂,今年才成立的品牌,叫辰晨家具(微信搜索cc_furniture), 看家具做的还行,价格也还算合适。他们做的样式就是HarborHouse这种美式的。我比较了各种风格,还是喜欢美式的多一些。

对了,此次乐从行带注释的相册在这里

是否要用中央空调

| Comments

除了普通的空调以外,现在还有中央空调可以选择。

中央空调学名叫VRV空调, 和普通家用空调一台外机对应一台内机(简称一拖一)不同的是,可以一台外机拖多台内机, 外机同时给多台内机提供致冷剂。

网上各大中央空调的厂商都列了不少的优点,比如节能,舒适,美观等等,因此大家会在装修中考虑使用。 不过我研究过后,除了一些特殊情况,还是不推荐大家在家装环境使用。为什么呢?

首先是节能。从中央空调的原来来说,使用场景是多个房间同时使用空调的情况下,中央空调是节能的, 因为一台外机统一供给内部使用,比起普通空调多台外机来说有节能优势。 但是一方面,家里人员是比房间少,不太会出现多个房间同时使用的状况,节能的优势就没有那么明显了。 中央空调的价格超出普通空调很多,算节约电费,不一定比普通空调划算。

然后是舒适,中央空调从原理上面来说,和一般的一拖一空调没有本质区别,无非是出风方式, 它的工作方式其实和普通一拖一空调是一样的,中央空调的风管机,一拖一也可以选择。 如果需要追求舒适,可以购买好的一拖一空调既可。

还有就是美观。前面说了,中央空调内机和一拖一空调一样,那么一拖一也可以选择内嵌在吊顶里面。 不过内嵌吊顶会影响到维修,同时增加了吊顶空间。空调直接装在墙上,注意好走线,一样可以兼顾美观, 同时减少了吊顶,要知道国内的房子一般层高都不高的,能不做吊顶就不要做。

还有一个重要的因素价格。中央空调需要在装修的时候一次性投入,并且需要增加吊顶。 对于普通三室两厅户型,一般的中央空调加上安装费用还有吊顶,估计要三万五,如果安装普通空调, 要一万五的样子,并且可以装修好之后根据需求慢慢添加。 中国很多地方的大部分月份是不需要使用空调的,那么在空调上面花费大量金钱不是很划算。 装修阶段需要用钱的地方很多,资金可以安排到其他更重要的项目上面。

后期维护。中央空调是一体化系统,如果出现问题,整体系统都不能使用了。 就算是安装中央空调,最好也在一些房间做分离的方案。 因为中央空调是固定在吊顶中,后期如果想更新中央空调,只能重新进行吊顶的装修, 灵活性不像普通空调一样,可以很方便地更换和维修。不过空调系统一般不会出现问题。

从上面分析得出,中央空调不适合普通家装使用。不过以下状况可以考虑用中央空调:

  • 没有足够的空间和权力安装多台外机
  • 需要使用空调的房间很多,或者需要全室内控制温度的

比如美国,大家都是独门独户,很多房间,这个时候最好是安装一体系统化空调, 在这种情况下,也可以考虑风冷空调(集中制冷,用风道通到每个房间)。

引用资料:

装修如何选择窗户

| Comments

装修大家一般不太细细考虑窗户,一些房型自己带有窗户,一些没有,需要另外购买。

窗户有不同的材质类型:塑钢,铝合金,断桥,铝木。 同时也可以选择多种开启方式:推拉,上拉,内开,内开上悬,外开,外开下悬,上下推拉。 还可以添加其他的插件:外加防盗窗,金刚网,纱窗,隐形纱窗。

我们需要考虑的性能和功能有:隔热,隔音,透光,透风,防盗,防蚊,加锁。

有那么多的选择,加上各种功能和装饰上面的区别,同时不同位置的窗户需要关注的重点不一样, 装修的时候最好需要好好思考怎么选择,不能草率定下。因为装修完成之后,换窗付出的成本很高, 用不满意的窗户会很不舒服。

特性

断桥窗因为隔热隔音的特性比较好,现在是装修的主流。推拉窗因为有间隙,隔热隔音性能不好,一般不做断桥的, 多见塑钢以及普通铝合金。铝木的隔音隔热性能更好,但是因为加上了木头,造价比较高,适合土豪以及高价房选择。

大城市高层多用内开窗户,这样比较安全,但是内开占用了室内空间,对于住户不是很方便。 内开上悬(内开内倒)的上悬状态可以保证一定程度的通风同时防盗防水(只开启上面一条缝),但是通风性能有限。 下悬一般不用在家庭中,摩天大楼玻璃幕墙有一些是这样的设置。

一些窗户为了满足防盗防蚊的需求,加上了金刚网,但是窗户的厚度需要增加,单价就会高很多。 外加便宜的三段中间抽拉式金刚网价格比较便宜(200多),但是美观要差一些。

防蚊可以用金刚网,固定纱窗和隐形纱窗。隐形纱窗视觉效果最好,也可以通过左右或者上下抽拉收起来, 但是寿命有限。固定纱窗往往装在推拉窗上,断桥就没有办法装了。金刚网造价就要高一些,外加以及窗户一体都比较贵。

防盗窗价格便宜(100左右),但是很影响视觉效果。不锈钢防盗窗便宜但是非常丑,铝合金不锈钢美观,但是造价高一些,不锈钢防盗窗如果里面没有穿钢筋,防盗效果就不是很好,穿了钢筋又重,人难抬。

建材市场里面的窗户品牌非常多,大多数都是小品牌。窗户厂商都是购买铝材回来加工,普通厂商也就几十个人。 但是不同厂商还是有区别,窗户加工机械有很大的不同,具体可以看窗户的做工,是否机械加工还是手工加工, 窗户的框是否厂家压好运过来,还是人工本地组装。

我觉得窗户的级别有几种:国外系统门窗,国内系统门窗,非系统机械加工门窗,人工组合门窗。 系统门窗的意思就是,厂商在设计的时候通盘考虑窗户的隔音隔热性能,可以了解到厂商提供的隔热隔音参数, 厂商为了达到这些参数,对窗户的工艺做了一定调整。国外的系统门窗可以达到非常好的性能,但是非常贵。 国内系统门窗性能没有那么好,价格也贵(2000以上一平)。 我建议至少要用机械加工门窗,而不是组合门窗(可以看窗户的角,是用角码螺丝固定,还是机器冲压的一个口), 这样窗户更稳固一些。

实例

以我自己装修作为一个实例。

首先是考虑更换哪些窗户。因为窗户的成本比较高(新房不能用太差的窗户,最起码也要500一平), 以及我们房子原先的窗户还过得去(铝合金推拉钢化中空),就只更换卧室的窗户。 卧室需要比较好的隔音隔热要求,人在里面待的时间也比较久,花钱更换更好的窗户是值得的。 装修之后窗户更换复杂,如果你觉得窗户使用寿命低于房子的使用寿命,最好更换。

我们装修预算有限,不考虑铝木窗,我们的装修风格是可以搭配灰色铝合金窗户的。

对于所有的窗户,我们有以下要求:安全,都要能够防盗,防止小孩出去,防蚊,美观。 我们是顶层,窗户一定要能够保证安全(住户以及楼下人员); 小偷很容易从楼顶上面翻下来,所有的窗户都要加上防盗; 房子内会养育小孩,窗户需要能够防止淘气小孩掉落出去; 我们的楼顶会有一些露天平台,蚊虫估计也不能避免; 加上是新房,在美观上面也有一定的要求,不能太丑。

然后是针对每一扇窗户进行单独分析和考虑。我们有几个:卧室窗户,书房内阳台,厨房。

卧室窗户的要求是隔热隔音,必须做断桥平开,因为窗户边上是梳妆台,内开就不可能做到了。 同时需要做到防盗和美观,要加上金刚网。因为人待得久,花多一些钱是可以接受的,选择好一些的品牌窗户。

书房内阳台。在保证隔热隔音的同时,我希望有比较好的视野,能够有整面的落地玻璃。 但是电梯的大小有限,太大的玻璃不能上来,我选择垫高阳台靠窗的底部,做一个飘窗一样的平台。 窗户放在阳台的两侧,选择内开外金刚网,因为是阳台,内开不会影响到人的行动。

厨房。厨房关注通风,隔热也需要,因为我们的厨房在北部,有西晒。但是和通风和防盗比较起来, 优先级就没有那么高了。我们选择的是一款带防盗栏和防蚊纱网的推拉窗。

对于所有其他的窗户,都外加漂亮一些的防盗窗,内加纱窗(推拉窗都可以加上,很方便)。

我们考虑了很久才选择这样的方案,价格在一万多的样子,属于可以接受的范围,这个方案我们很满意。 希望大家也要用心选择。

什么通用数据交换格式更好

| Comments

考虑可以同时用来应对程序和人都需要阅读状况的通用数据格式, 几个层面:

首先是数据格式,需要能够支持:string, bool, number, time。 它们都应该是标准化了的。考虑不增加symbol,因为和string有概念上面的重复, 使用上会产生困扰。

然后是数据的组织方式。因为组织本身是不可变的,用map和list能够覆盖所有类型的数据组合方式, 并且是完备的。tuple这种冗余不需要。

最重要的是数据的表示方式。 人工阅读的数据应该容易阅读,所以数据要有换行和缩进,没有xml这种尾部冗余。 数据组织之间的切割应该用分割符,而不是换行。类似yaml这种换行分割会带来更多的问题。 数据应该同时有两种表示方式,一种文本格式,用utf8编码,方便人阅读, 一种二进制格式,机器处理更快,两种方式能够互相转换。

关于xml,如果说json是类型的组合,那么xml就是物件的组合,默认物件拥有属性和子项, 所以xml我觉得是一种非通用的格式,本质模型不适合进行通用数据交换。

根据上述考虑,我觉得合适的方案是:格式化之后(换行缩进)的json,结合bson来用。 比如RESTful的服务,返回的json默认增加缩进,同时也提供bson格式的返回,不考虑其他格式。

局域网时代下科学上网

| Comments

(2015-12-14更新KCPTUN方法)

我们知道,最近各大运营商都提速了,大家随便就可以买到100M以上的网络。 但是国外出口没有配套提升,这样的结果就是,分到每个人的国际出口带宽就少了, 访问国外网站就成为一个非常痛苦的过程。中国的网络就此成为一个名副其实的局域网。

要解决访问国外网站的问题,需要两步:

  • 要有一个保障国际出口带宽的国内服务。
  • 要有一个国外流量中转服务来绕过我们都知道的防火墙干扰。

用户连接国内VPS的方案可以是VPN,可以是代理。我偏好VPN,因为全局翻墙下各种命令行工具也是可以用的。对于普通人来说只需要访问网页,各种代理协议也可以。

国内VPS连接国外VPS的方法最好是常见的VPN,为什么呢,因为常见VPN各大国内外企或者国内互联网公司也在用,防火墙不太会干扰这些主流业务。 如果用ssh,或者其它代理或者不知名的协议,一方面会被防火墙干扰,另外一方面包协议没有足够好的优先级,性能会差一些。

我觉得最好的解决方案是:国内一台有良好国际出口带宽的VPS和一台国外VPS结合,提供pptp/l2tp/anyconnect VPN服务。

这种方案我没有配置成功,因为不知道如何让国内VPS来做VPN中继。只能用其他的方案了: 结合微林的云涟服务以及ssh代理连到我买的国外VPS上网。

云涟是一个提供良好国外出口流量的服务,方法是用openvpn或者anyconnect连接到一个阿里云里面CN2网络的VPS上面。 有了好的出口带宽,之后用本地电脑命令行的ssh连到国外VPS,提供本地的一个sock5代理,再在浏览器上面设置代理访问网站。

具体操作:

  • 注册微林,按照教程,本地电脑连接上VPN。
  • 购买一台便宜的国外VPS,比如DigitalOcean
  • 如果你是linux或者mac,在命令行执行 ssh -ND 1080 user@digital_ocean_vps_ip。
  • 设置浏览器的代理,用sock5,地址是127.0.0.1,端口1080。

我现在用这种方法,访问国外网站非常顺畅,速度可以达到1MB/s。 不过,成本会高一些,云涟的费用是1块钱每G,国内流量的费用是比较高的。 国外VPS就便宜了,DigitalOcean是5美元一个月。

期待有科学上网服务商提供这样的整体方案,省得大家自己弄了。

2015-08-29更新:

因为ssh提供sock5代理的性能问题,以及有协议特征容易被防火墙干扰,我建议大家换用shadowsocks。 它是一个python写的客户端/服务器分离的sock5代理(国外服务器跑server端,client端和server端加密通讯,client端再启动一个sock5服务)。 现在作者被喝茶,官方项目已经废掉了,不过还有其他的镜像

客户端和服务器双方预先保存密码,没有登录等操作,直接用密码加密通讯, 同时可以选择多种加密方式,这样通讯没有协议特征,防火墙没有办法干扰。 不过还是会有流量特征,防火墙如果开启智能学习的话,会把通讯劣化掉。不过现在好像没有进行这样的干扰。 同时因为跑的是非主流协议,运营商会降低通讯的优先级,造成性能差一些。

使用方法:

  • 购买一台便宜的国外VPS,比如DigitalOcean
  • 在VPS上面安装SS,然后执行ssserver -p 4431 -k password。记得修改-k的密码参数。
  • 注册微林,在vxTrans里面创建一个端口映射,指向你的VPS服务器的4431端口。通过微林的CN2精品网络保证出国带宽。
  • 在你本地机器上面安装SS,执行sslocal -s 微林服务器地址 -p 微林服务器分配给你的端口号 -k password -l 1080,这样连接到微林的端口转接,同时在本地启动了一个1080的sock5服务。
  • 设置浏览器的sock5代理,指向本地服务器的1080端口。
  • 如果你希望在命令行下面翻墙,可以安装proxychains-ng,OSX下面可以用brew安装。

2016-12-14更新:

ss翻墙中间网络传输的速度不行,我发现了kcptun这个神器,针对链路进行加速,看youtube高清视频一点问题都没有。

使用方法:

  • 在你的服务器上面安装kcptun,直接下载官方的二进制包就好。
  • 整体逻辑:服务器ssserver - 服务器kcptun - 本地kcptun - 本地sslocal,kcptun提供一个加速的链路,ss负责加密传输。
  • 服务器上面跑ss:ssserver -p 4431 -k sskey
  • 服务器上面跑kcptun:./server_linux_amd64 -t "127.0.0.1:4431" -l ":42871" -key "sharedkey" -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2
  • 本地机器上面跑kcptun: ./client_linux_amd64 -r "server.com:42871" -l ":4432" -key "sharedkey" -mtu 1400 -sndwnd 106 -rcvwnd 2048 -mode fast2
  • 本地机器上面跑ss:sslocal -s 127.0.0.1 -p 4432 -k sskey -b 0.0.0.0 -l 1081
  • 里面42871是kcp的端口,kcptun把服务器sserver的4431端口映射到本地的4432端口让sslocal访问。sharedkey是你kcptun本地和服务器共享的密钥,sskey是ss共享的密钥,server.com是你vps的地址,都要修改一下。其它的参数你感兴趣可以去官方网站上面看解释。
  • 打开浏览器,设置SOCK5代理,端口1081就可以了。

是否要用装修公司

| Comments

最近忙装修,装修公司挑了无数家。在我们这种四线城市, 很多人不会去找装修公司,而是自己找装修队伍,我不是很认同这种方法, 诚然,自己找装修队可以节省好几万的费用,但是钱不是这样省的。

装修过程有几个方面:

开始的格局设计:考虑什么房间做什么事情,里面的家具如何放置,动线,通风,采光什么的。 没有在这个阶段深入思考,装修出来发现问题再改就来不及了。某朋友自己装修, 完了才发现一个房间空调没有地方放,再打洞就会毁坏掉房间的装潢,很麻烦。 我们购买的是复式楼,在找设计公司的时候,群策群力,分别提出了各种的方案,比如考虑楼梯的位置,就有三种选择。 每种选择都有不同的功能区域划分,然后功能区还需要细化。如果不找装修公司,自己是想不到这么多方案的。

硬装:包括水电,木工泥工什么的。工程方面有很多很多的门道,自己可以去研究,弄清每道工艺, 但是再怎么研究,也比不上有经验的施工人员。施工的过程中也会出现一些突发状况, 需要有施工经验的人帮助参考。某朋友自己找施工队,楼顶敲出来三处,结果防水没有做好,返工了好几次, 损失的钱都可以找装修公司了。

软装:我们去过一些朋友家,自己装修和找人装修的效果区别巨大,很明显就认出谁的家是设计过的。 装修很花钱,效果好不好却很大程度体现在软装上面,一般人对空间色彩不够敏感,也没有很多的设计可以选择。自己装修,花大笔钱,最后却没有一个好的样子。 除非自己是设计领域的,软装最好还是找人把关,自己乱买东西最后搭出来一个古怪的风格。

总而言之,专业的事情交给专业的人员。不要什么事情都自己做。 大脑容量是有限的,多充实自己的专业知识赚更多的钱购买服务更划算。

至于行业鱼龙混杂,找不到好的装修公司,或者找到装修公司乱开价的问题,就是“战术”层面的问题了。

我的看法是:根据开销,选择对应档次的装修公司。普通人也不需要顶级的设计师和装修公司, 我觉得满足要求的就可以了(当然满足基本要求也需要挑好久)。最好是原先有经验的设计师出来单干开新公司,价格上优惠,人员也是有经验的。

至于装修公司乱开价问题,这种非标准化服务,没有办法横向比较,只能自己多研究,可以找一些连锁的公司,管理规范一些。 收费方面每个项目自己都要弄明白,这样才不容易被蒙骗。装修不能做甩手掌柜。

另外装修公司也是希望把项目做满意的,项目满意名气就更大,名气大了来的人多,收费也可以更高。 走上合作的道路对双方都有好处。

在项目过程中,顺利的沟通非常重要。 设计师能够提供专业领域的把关,但是生活方式和房子的风格还是只有自己清楚, 需要让设计师弄清楚自己的需求,而不是顺着设计师的思路,弄出一套样板房,自己住着不舒服。

更好的命令行

| Comments

命令行大家应该都熟悉了,但是命令行其实是很烂的, 输入和输出都采用字符串的方式,而不是一个规整的数据结构。 这样的后果是,每个程序都需要自己解析输入,以及提供一个特殊结构的输出, 很容易出现解析上面的问题。

从本质上面说,命令行就是一个函数执行的接口,终端就是一个状态机, 每一个命令就是一个函数。那么为什么不像通用的编程语言的函数一样来定义?

比如这样来写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 普通操作
$> date
=> "Sat May 23 09:18:38 CST 2015"
$> rm('/fdas/fdas/fda', directory: true, force: true)
=> true

# 输出结构化
$> ls
=> [{mode: 'drwxr-xr-x', user: 'halida', group: 'halida', size: 123, name: 'Gemfile.lock'}]
$> ls(columns: [:name, :size])
=> {name: 'Gemfile.lock', size: 123}

# 管道
$> history >> select{|row| row[:cmd] =~ /mina/ }
=> [cmd: {'mina init'}, run_at: '2014-02-01 10:00:21']
$> ls >> filter(:name)
=> ['Gemfile.lock']

# 很多命令应该用面向对象的方式来执行,更容易理解
$> master = git-get-commit('master')
$> master.files.count
=>3
$> master.committer
{name: 'James', email: 'james@gmail.com'}

# 输出日志就算是以文字的方式体现,也最好结构化起来,方便解析
$> log = log("Process file (filename) finished, spend time (spendtime)", filename: "xxx.mov", spendtime: 220.seconds)
$> log.spendtime
=> 220.seconds

网上搜索了一下,看起来没有什么好的解决方案,有时间我可以开发一个看看。