Swift

最近在看Swift。已经很久没有这么“悠闲”的看一本书了,从头开始认真的看一本书的感觉还不错。
Swift给我的感觉是一门挺“特别”的编程语言。Swift是一门动态语言却加入了很多静态语言的特性,从一定程度上说Swift比很多静态语言还更严谨。

  • 在Swift里所有数据都是有类型。Swift有着强大的“类型推导”,因此很多地方是不需要指定数据类型的。也正是因为所有数据都有类型,相比大多脚本语言,编译器能检查出更多的问题,IDE的自动化程度也很高。
  • Swift和Objective-C采用ARC进行垃圾回收。以极低的性能损耗换取了接近全自动垃圾回收的便捷性。(注:官方宣称Swift比Objective-C要快很多)
  • Swift有这众多的动态特性以及语法糖,使用便捷且功能强大。

Swift中的?以及!

之前在其他语言中没有见过类似语法,初次接触时非常困惑。但一旦理解了之后就会发现这其实非常简单。
String?表示String或nil。首先要理解 String? 同 String 并不是同一个类型。 ?是一个封包的操作符号,将String封装成 ? 类型。(注:有点类似泛型,按照泛型的写法是 ?<String>
!则是解包操作,将String?转换为String。如果被解包的数据是nil,则会解包失败抛出异常。

var s = "abc"  // s被自动推导为String类型
s = nil  // nil本身也是一个类型,类型不相等,将抛出错误。
var ss: String? = "abc"
let x = ss!  // ss 有值,可正常解包不报错。
ss = nil  // String?允许值为nil,不报错
let y = ss!  // 报错,无法对nil进行解包

Swift中的Dictionary以及NSDictionary

Swift中的Dictionary同NSDictionary可以通用(NSArray类似),但实际上它们并不是同一个东西。它们在混用的时候,编译器是需要对数据进行转换的。如果你代码中涉及大量的Dictionary/NSDictionary转换,很可能导致你的代码出现性能问题。(注:据说Swift中JSON处理速度慢就是该问题引起的)

django-lbutils

在Github上公开了不少项目,不过其中大多都算不上“开源”。在我看来开源也应当是一件认真的事情,需要对项目持续的维护,同时也需要提供必要测试用例及文档以保证项目的质量。
最近打算将自用的Django工具组件做个简单的整理然后发布了。为了让项目不要太“随意”,开始补测试用例及文档。因为是自用,测试用例和文档几乎为零。最初只是想简单的修葺,不想真正做起来工作比预期的要高出很多。整了许久代码中的注释依旧很不全,测试的覆盖率都还未达到80%,文档更是没开始动。因为文档还没弄完,所以项目也不算正式发布,如果你感兴趣可以先去看看django-lbutils
为了这个项目,尝试了一些之前经常看到却一直没怎么使用过的工具。

Tox

Tox是一个Python的自动打包测试用具,用来测试Python库在不同环境下的兼容性。因为是自用,本机环境跑起来是没啥问题。不过在兼容性测试时部分测试用例在Python3以及Django的某些版本下跑起来会有问题。为了搞定兼容性花费了不少时间。

Travis CI

Travis CI是一个在线的持续构建平台。Travis CI会检查你在Github上项目的变化,每当有新push的时候进行自动编译。我现在是每次改动后,直接在Travis CI看测试用例的执行情况。

Coveralls

Coveralls测试覆盖率查看工具。结合Travis CI,可在每次测试完成后将测试覆盖率信息推送到Coveralls。在Coveralls可方便查看当前的测试覆盖率。

Read the Docs

Read the Docs文档托管服务。可从Github抓取文档并自动编译好生成在线文档,目前几乎所有的Python库都将文档托管在上面。

畸形的中国房价

年后,有是一轮房价的快速上涨。上海、北京城区的房价轻松破5万每平米,北京更是创造了“11平学区房卖530万”的天价。在我看来现在中国的房价真是贵,贵的离谱,这时候如果想买房投资绝不会是一个很好的选择。

相比房租,房价高的离谱

近年来银行利率一降再降,但也保持在5%左右。如果你贷款120w买房,这意味着你每年单银行利息就得支付6万,平均每月还贷5000。在中国的1~2线城市里,120万装修好的房子顶多也就能租到3000。如果不考虑房价上涨,每月投资收益就损失40%(这还不考虑租房的空窗期)。
再参考一下国外的房价和房租。日本人口密度很大,寸土寸金,国人印象中日本房价一直居高不下。日本房价可以参考知乎的问题日本房产是否比北京上海便宜?具体原因是什么?。从里面可以看到,中国北京、上海的房价已经成功赶超东京。另外从东京和北京、上海在物价上差别有多大?这个文章里可以大致了解到东京租房价格。“家住千叶县市川市靠近浦安 距离东京都心地铁半小时左右 房租5万4 不到20平米”换算成人民币和国内的房租面积算法,也就是30平米不到,3000千的房租。大致推算下来,房价相当的情况下,日本的房租比国内的房租要贵到近一倍。
注:日本的房子面积不算公摊,因此房子面积相比国内要乘以个1.4左右。日本尽力过房价的暴涨以及崩盘(理性房价的回归),对国内的房价走势有一定的参考价值。如果真有100万现金,可以购买银行的信托基金,通常收益回报率是可以大于房贷利率的。

中国的房价为什么如此的贵?

一般大家都在说房价贵,一边又都在买房。你说房价高,却又一山更比一山高。中国的房价贵,自然有贵的理由。

买房实际上是在做风险投资
既然短期内无法通过房租获利,那就只能寄希望于房租或房价的上涨了。按照现在的租金情况,租金至少要上涨一倍才有希望获利。按照中国目前的薪资水平,如果房租真上涨一倍,立马很多人无家可归。想要实现房租的翻番需要漫长的等待。既然考租金获利不靠谱,最直接的就只能是房价上涨后赚差价了。目前的房租收益已到了一个非常糟糕的情况,如果房价继续快速上涨,房租收益情况必然更加恶化。既然买房如此的不“合算”为何还要买房?房租虽然无法决定房价,却又不可避免的会影响房价。
从经济的角度来讲,不管是房租的上涨还是房价的上涨都需要靠国家经济的快速增长为前提。投资房地产实际上是投资“国家”这个“创业公司”,预期国家在今后可以继续的快速增长。

国人“有钱”
中国的独生子女制度,让一个房有机会耗干两个家庭的所有积蓄。同时又是独生子女制度让大家能接受花干了所有积蓄也只能买89方的小户型的现实。

租房的困境
从经济的角度讲现在买房很不合算,但如果你真不买房问题不少。
不规范的租房市场
租房虽然省钱,但并不省心。在中国你想安心的长期租住并不容易。由于房租不赚钱,房东大多想着等房价涨了卖出去赚一笔。租房意味着你随时都可能被房东扫地出门被迫搬家。

资源(尤其是教育)的不平衡
如果没有房,孩子上学都是个问题。

今后

简单的说我并不认为中国房价可以持续的快速涨下去。中国的房地产有着太多的问题,太过脆弱,犹如美丽的肥皂泡,一不小心就会被戳破。但我也并不认为房价会崩盘。中国经济及房价的发展轨迹像日本,但中国不是日本。日本崩盘了,中国未必。中国ZF更不市场,有着更大的调控能力。

房价稳中有升
高存量,房租不赚钱,房价不涨,难免会引发一定量的抛售,搞不好就真崩盘了。因此我觉得房价稳中有升,即给买家一些希望(大多已经买房的人都希望涨),又不至于让房价相比租金继续太过畸形。
当然,这是我说的理想情况,就实际情况来说房价下跌的压力可能比预期的还要大。
注:“快速平稳”的降低房价的手段之一是“货币贬值”。现在的中国早已不是上世纪90年度的中国,中国的经济体量在这里,一旦主动大幅度货币贬值很可能是灾难性的。

中国经济的不确定因素-人口红利
然后就如国家自己说的一样“中国的经济到了拐点”,中国传统粗放型的增长难以继续支持中国的快速发展。然而转型又岂是如此的容易。
中国的经济增长想来都是靠资源推动,其中最重要的一个资源就是“人力”。长期以来中国有着丰富的人口红利,中国的人口红利在近几年就将达到高峰,再之后就要开始衰减了。随着人力红利的到期,中国能否继续高速增长就更依靠“产业升级”,但中国所谓的“产业升级”似乎走的并不顺。
人口增速的降低带来的另一个问题是住房需求降低,需求的降低也必将对房价产生不利的影响。中国目前人口迁移的形式是逐步向各大中城市迁移。现在不少农村几乎已成了空村。可以预见,中国的一二三线城市的人口还将继续增加,但增速会有一定程度的减慢。四线城市以及乡镇的人口甚至会有一定的减少。

人口政策的转变
中国近期全面开放了2孩,不管大家愿不愿生,多生孩子多种树都今后的主旋律。一旦2孩,之前的小户型必然无法满足居住需求。相对而言,人们对房价单价的承受能力就变弱了。之前的一套房已经将很多家庭的家底掏空(贷款都没还完),这时在面对几个孩子的情况时必然无法同现在一样给孩子如此大的支持力度。

城市发展模式的转变
中国长久以来都是城市的巨型化。随着信息技术的发展,让城市的中心优势变的不再明显。或许今后中国的城市会逐步走向“泛中心化”,大量的公司移到郊区,除了周末逛街,大家不用都挤到中心城区。城市范围扩大后,土地的紧缺的可得到一定程度的缓解。

最后

中国房子只有70年产权-_-!

眼镜验光配镜须知

每次换眼镜都要配坏好几幅眼镜,这次在配坏了两副眼镜后决定自己去买了验光眼镜来对度数进行微调。
既然决定要自己验光,有些验光常识还是需要知道的。

矫正视力到多少合适

通常大家都会希望矫正视力越清晰越好,但对于近视的患者来说如果“过矫”会导致看近处的时候眼镜更容易疲劳。现在大家成天都盯着电脑手机,因此矫正视力到0.8~1.0就可以了。

正规的验光过程是怎么样的

知乎上的这个问题“一个完整的眼睛验光流程是怎样的?”里有详细的验光说明,大家可以去详细了解下。
下面把几个重要的步骤简单的说一下。这里列出的只是一些比较重要的步骤,如果连这些步骤都没有,那么这个验光流程是非常不正规的。

  • 测瞳距
  • 电脑验光
  • 散光轴位和度数初步检测 看一个放射图,调整到所有线都一样清楚
  • 红绿平衡 看红色及绿色背景的视标。如果绿色比红色清楚,说明过矫了。
  • 试戴调整度数 带验光用的插片眼镜最最终的度数调整。

自己验光

由于长期配镜,加上去眼镜店验过,对自己的度数基本了解,因此直接跳到最后一步,使用验光眼镜对眼镜度数进行微调。验光眼镜可以很容易的在淘宝上买到。
验光眼镜每侧可以插3个镜片,因此在购买插片的时候可以再买两片25度的插片用来做对比测试。眼镜上有两个旋钮,用来调整轴位。如果有散光,可以反复调整轴位直到确认最合适的轴位。

近期配镜体验

上一副眼镜在“亿超眼镜”配的,当初验光还算仔细,这次配镜还是找他们家。哪知他们对加盟店几乎没有任何管理,验光过程及不正规,最终拿到的眼镜非常不合适。之后去了“毛源昌”。毛源昌的验光流程比较正规,拿到的眼镜佩戴也还比较舒适,和自己通过反复试戴确认的度数基本一致,轴位方面有10~15度的差距。验光师没有考虑我长期使用电脑的实际情况,眼镜度数给的“太足”,实际使用中存在过矫。

镜片

镜架方面主要是舒适、好看,个人感觉贵的和便宜的差别不大。镜片方面需要关注的是镜片的折射率和阿贝数。阿贝数越高越好。折射率越高镜片越薄,但通常情况下阿贝数会越低。国外知名品牌的镜片价格相对昂贵,且假货多。除要求特别高,一些国产知名品牌的镜片也是个不错的选择。从网上看国产的里面“明月”、“万新”的镜片相对较好。

红绿视标
红绿视标2
散光放射图
fs
视力表
psd6615

Bye, 2015

2015算是平静的一年,却也发生了一些事情。

我的第一辆车

有朋友说车代表自由,有了车后可以方便的去很多之前不方便去的地方。不过我对车一直都不太感兴趣。我总感觉车本身也是一种束缚,很多地方即使有车也去了。我期待着背上背包说走就走的自由。
因为老婆怀孕,第一次有了买车的计划。杭州的限号,加上“小气”的我舍不得花钱去购买车牌,因此打起了电动汽车的主意。2015年我有了第一辆四个轮子的车,虽然是租的。
拿到车的第一天就发生了一起车祸,把他人的车给刮了。我的车胎破了,动弹不得,保险公司的拖车不肯过来,加上手机没电让我一时没招。被迫将车丢到景区,先回公司查找资料,看附近是否有修车公司可以过去。同事说看着我撞了车还一脸淡定感觉很好笑。

宝宝

既在计划之中,又在计划之外的宝宝。一直认为宝宝应当是生活的一部分,不应当是全部。当宝宝真正到来的时候生活还是不可避免的被改变了不少。
宝宝并不如之前预期的那样省心,私人时间少了不少,今年的出行计划全部泡汤。

工作

工作方面虽然遇到了一些小困难,好在最终也算是有惊无险。
领导希望公司的办公平台能成为公司的数据中心,各业务平台都可接入公司的办公平台,由办公平台做业务及数据的整合。要实现这个目标用第三方的业务平台自然是无法做到了,于是就有了采用自建平台替换现有第三方平台的方案。
由于部门人太少,还得引入第三方开发商合作开发。找供应链部门一起折腾许久才将合同敲定。
技术方案相对来说倒还简单。开放框架自然还是我最熟悉的Django,前端用的AdminLTE,静态资源用Bower管理,sentry啥的APP自然也是少不了的。流程引擎方面还是之前我们自己开发的那一套。
公司在流程方面有着各类“变态”的需求。在经过这次的洗礼之后我们的流程引擎在功能方面算是比较完善了。或许在今后工作不是那么忙的时候可以将这个流程引擎开源掉。
真正麻烦的是公司流程的梳理。公司流程梳理的难度远大于预期,甚至让我有些后悔选了自建平台的方案。最后阶段调整计划,优先保证重要流程上线,其他流程上线时间延后。虽然总体计划有些延后,但平台总算是顺利上线。

Other

2015年有写一些Objective-C。一个编程语言难的不是它的语法,而是习惯它的思维方式。

开始使用Feedly

Google Reader关闭后之前订阅的feed全部丢失,已很久没读过博客了,似乎也是从那时起自己的个人博客也很少更新。

前一段时间看到湾区日报V2EX介绍自己网站一周年的运营情况。很早之前就知道这么个网站,但一直没怎么认真看过上面的东西。无偿的将一件事情坚持做下去并做好并不容易。可能是出于好奇又去网站看了下。上面的文章确实还有些意思,另外湾区日报的博客似乎也还挺有意思,一时让我有了重新启用Feed阅读器的想法。相比微博的嘈杂,博客要清净的多。

Feedly据说是Google Reader的最佳替代。在Feedly上加了我在Github上关注的几个用户的博客,想之后的订阅应当会慢慢增加吧。

股市入市一年回顾

从上月中旬开始,股市忽然急转直下,哀鸿遍野。网友们感叹,给不了慢牛至少也得给个慢熊啊。
在经过一段时间的观望后我已不再相信近期的股市还有机会。昨天将所有股票清仓,这波的行情到此为止,耐心的等待下次机会。在下波行情到来之前股市的涨跌已与我无关。
去年9月2300点入市,股本2w,在3000点前增加到5w。在股市的最高点股票总值差不多有8.5w+。清仓时是7.6w,刚好达成最初的50%收益预期。
我对股市的观点和刚入市差不多,这里再简单的说一下。

  • 不被外界的各类因素干扰,做自己认为正确的决定。
    在股市下跌一段时间后,我感觉行情不太对,让老妈赶紧将股票清掉。老妈很不开心的说:早些时候不叫她清,现在跌的这么惨才要清,她不干,一定要涨回去才行。
    作为一个普通人,我们几乎没有可能在第一时间发现机会和危险,我们能做的只是不要落后太多。一个股票卖与不卖的关键在于“该卖了”,并在在于你赚了多少或亏了多少。如果你觉得行情不对了即使亏的再多也应当果断的出掉及时止损。
  • 在自己能接受的风险范围内投资股票。
    买股票很重要的一点就是能客观的判断形势。如果投资在股市里的钱过多,股市的每次涨跌都将直击你的心脏,让你无法客观判断。
  • 少看K线,股评
    资本市场里聚集了世界上最聪明的一票人,妄想在短线操作上胜过庄家也职业操盘手几乎是不可能的任务。更糟的是做短线会让人的心态变差。涨的时候后悔自己卖早了,跌的时候后悔为啥没早卖,不管股市是涨是跌你都开心不起来。你要做的只是把握股市的大行情,跟着行情能赚到一些省心的小钱就已经不错了。

PS:
这次股市崩盘的速度远超乎大多人的预期,国家频频出手都未见成效。或许真同网上说的一样再这么跌下去国家得出大问题。所以虽已经逃离股市但也不希望股市跌太惨。跌到3000点国家应当还顶的住,如果跌破2500点就真不好说了。

Hi, 2015

2014是忙碌的一年。各类的事情堆积到一起让人忙的只顾赶路,根本没有时间停下来学习和思考。忙碌却又没有太多能让人回味的东西,说直白一点就是瞎忙。中间一度想给自己放个长假,给自己有些时间思考,让自己可以做些决定。休息几个月在短期来看或许时间有些很长,但如果放到整个人生里也只是短暂的一个片段。

股市,算是今年少许让我能收获成就感的事情之一。相比从股市里赚到钱而言,我更在意的是做了正确的决定。07年进入股市,成功的将1w变成了2k。买房,又是在房价的高点。就如朋友说的,总是深思熟虑后做了一个最坏的决定。这次至少到目前为止我的判断还是基本正确的。当然还在“赌场”里就谈不上输赢,希望这次我做的不再是糟糕的决定。

2015,希望能不再这么忙,另外能做些让自己有些成就感的东西。

中国的股市

07年第一次接触股市,总共在股市中投入了1w+的资金。前一段时间将07年买的一个股票卖出去后账号还剩下2k+的资金。真正的开着汽车入市,推着自行车出来,投资的亏损率高到惊人。
今年9月24日在微博发了一个股市看多的言论,之后在时隔多年后重新入市。当时的股指应当是2300点左右。老妈听说我买了股票不断告诫我目前的股指已经很高了(之前股市长期徘徊在2000点)。老妹更是说投资群里的“专家”都说股市到头了。不过随着近期股市的持续上涨他们已经开始慢慢的接受我的言论了。
中国的股市更像一场博傻游戏,游戏一旦开始就很难停下来。真正关键的不是买什么,而是进出的时机。
下面是我的一些观点:

  • 近期大行情看多。在国家经济不景气的情况下国家通常会适度的增加经济泡沫以刺激经济发展。股市的长期低迷并不是国家希望看到的情况。股指维持在3000点左右问题不大,如果超过3500点国家可能会有所动作。(最近一周涨的太快有些超过我的预期)
  • 别频繁换股,跟热点。行情来的时候跟着行情赚点小钱就好,别想着跟热点赚大钱。除非你非常有天赋,不然跟不好的。
  • 相信并坚持自己的判断。中国最不缺的就是专家。如果你关注股市一段时间就会发现,看多的人永远都在看多,看空的人永远都在看空。每次遇到牛市就会涌现出许多所谓的股神。在股市真正的底部出现前没人知道股市真正的底在哪,同样在股市真正的顶部出现前也没人知道真正的顶在哪里。别太为各种纷杂的信息以及股市短期的涨跌影响自己的判断。
  • 股市有风险,投资需谨慎。在自己能投接受的风险范围内投资。如果感觉行情变化时候赶紧出来,不要犹豫不要抱任何幻想。少赚点总比亏钱好。

我明白自己不是绝顶聪明的“少数派”,但还相信自己并不笨。虽无法做到第一个发现机会,但往往也不会是最后一批。

Quick and Dirty

朋友说最近他在反思之前的一些做事方法,做项目和产品应当是“Quick and Dirty”。他是一个注重细节的人,在我看来会有些太过注重细节。
如果一开始就希望将所有事情做完美将直接导致进度的缓慢。而且当前的世界变化太快,在项目的初期项目的后继走势往往很难预料。如果项目无法很快的推出、反馈、进化,很可能根本就没有机会发展。

所有展现给用户的功能都应当是完美的
“Quick and Dirty”并不是说产品可以是一个勉强可用的半成品。后台的实现可以Dirty,但展现给用户的绝不可Dirty。你可以除了核心功能外,其他啥附加功能都没有,但不可啥功能都有啥功能都Dirty。功能的缺失用户可以等,但已有功能的不到位就会让用户质疑团队的专业性及能力。

程序的Dirty是有底线的
有时候为了验证想法,用最Dirty最快速的方式实现想法是没有问题的。一旦想法被验证值得持续的投入,这时就应当考虑Dirty的成本了。项目短期的Quick很可能是今后无穷无尽麻烦的来源。这时候可以Dirty,但必须是可演化的,Dirty的部分可以在今后方便的改进或替换掉。