还是Hexo好。
Wordpress不想用,对PHP没好感。
Ghost至今都还在不是很成熟,要说是专注于写,那还有什么比编辑器写markdown更纯粹呢?

两年没更新了,还是用hexo写起来吧。

一、问题

最近不少同事离职,公司氛围不太好。我一直在思考几个问题:

为什么离职?

网上传的很火的马云语录曰:员工的离职原因林林总总,只有两点最真实:

  • 钱,没给到位;
  • 心,委屈了。

这些归根到底就一条:干得不爽。
以上两点原因确实可以概括大部分的离职,然而,在职场中还有其他原因的离职,丝毫不罕见:

阅读全文 »

银行卡校验算法(ISO/IEC 7812)蛮简单,轻松撸完。然后又用Swift函数式编程的方法优化了之前的实现,更加喜欢Swift了。

Luhn算法通过函数式编程的Swift实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private func LuhnAlgorithm(digits:String) ->String {
let checksum = digits.characters
.reverse()
.flatMap{ Int(String($0)) }
.enumerate()
.reduce(0) {
let indexIsOdd = $1.0 % 2 == 1
guard indexIsOdd else { return $0 + ($1.1 == 9 ? 9 : $1.1 * 2 % 9) }
return $0 + $1.1
} % 10
return checksum == 0 ? String(checksum) : String(10 - checksum)
}

这个简短的函数已经展示了函数式编程的魅力——实在是太精炼了!
通过函数式编程实现,几乎比原来过程式编程的实现方式减少了一半以上的代码行数,非常精炼,没有任何冗余代码。
上面代码中的flatMap()其实就是map()方法,只不过是Swift里面的一种特殊实现。

同样的,通过函数式编程实现中国大陆身份证号码校验算法,也异常精炼:

1
2
3
4
5
6
7
8
9
10
private func computeCheckSum(idCardNo:String) ->String {
let R:[Int] = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
let checksumMap:[String] = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]
let sum = R.enumerate().reduce(0) {
return $0 + Int(String(idCardNo[$1.0]))! * $1.1
}
return checksumMap[sum % 11]
}

我接触函数式编程比较晚,第一次接触到map()reduce()filter()这样的高级函数是在工作后学习Python时才了解到的,Swift这种新语言必然少不了这些高级函数,可谓是不知道比Objective-C高到哪里去了,所有的OC程序员都应该学习一个。

大量函数式代码会使算法变得越发的晦涩难读,其实上面的算法不了解的人肯定会觉得晦涩,我之所以觉得精炼美妙,是因为我已经先用过程式的代码实现了一遍,已经理解了算法细节。所以函数式编程用在合适的地方就好,不要滥用。

本质上说,函数式编程过程式编程是两种完全不同的思维方式,后者更符合人类思维方式一些。以后可以在写完过程式的代码,再思考下用函数式该怎么表达,就当是思维体操了。

完整代码在这里:

[1] 银行卡校验算法(ISO/IEC 7812)

[2] 中国大陆身份证校验算法

这个星期繁忙工作中抽空把Swift语法又学一遍。之所以说“又学一遍”,是因为其实在Swift刚面世时,就有去学习过。但是由于实际工作中基本上不用,时间一长就生疏了。如此已经反复了几遍,实在汗颜。

于是我决定直接用Swift写东西练手,杜绝低效重复学习,浪费时间。

本周进展

把Swift语法看了一遍,又用Swift写了身份证号码的校验算法。几点感受:

  • 即使目前Swift已经开发到了2.2版本,可是基本API依旧非常不完善,使用起来很不方便
  • 由于需要考虑到多人协作、公共库维护等问题,Swift目前依旧不适合用到公司项目中,只能用在个人项目或者学习练手
  • 从OC过渡到Swift初期,写出来的Swift代码有浓烈OC风格,强迫症会感觉非常难受

下周计划

继续用Swift把银行卡校验算法写一遍。熟悉Swift最好的办法就是实际用起来,这样就不会生疏和忘记。

2016年立下几个计划,年底的时候回顾看看完成多少。生活一定要有目标,否则就是盲目没有方向的。

  • 开始在github上写开源项目
  • 把Swift熟悉到可以做app的程度
  • 恢复坚持写blog的习惯
  • 健身,跑步、自行车、游泳恢复起来,争取把肚子上的赘肉减掉
  • 读书,并写读书笔记

拖了几年,总算把blog从WordPress迁移到hexo了。
看自己写下的几百篇post,感慨时间好快,几年就过去了。
这次迁移只保留少数文字,其他的从头开始…

恢复码字。

公司有个员工离职了,考勤截止之前他在内网写下了一篇文章。读完全文,有共鸣,有感动,更多的是钦佩和祝福,祝他在未来的生命路途中一帆风顺。
实在不忍如此好文雪藏,全文转出分享。

阅读全文 »

半个月前读友小搞给我推荐了高尔泰的《寻找家园》,我第一时间便去找来阅读,半个月过去了,今天终于彻底读完。翻看阅读过程中的记录,不管是用钢笔记在本子上只言片语的感想,还是键盘敲在文档里零零碎碎的片断体会,竟然都是我所作过笔记最多的一本书。

一句话评书:真实,带着锋利的真实,让我感到一种独特的深刻。

阅读全文 »

《四十自述》主要叙述了胡适母亲嫁入胡家和胡适幼年跟少年阶段读书求学的经历,以及他推动白话文运动的中的一些观点讨论等。

当今21世纪的教育,尤其是思想教育,远不如100年前,甚至严重退步。今日之学生受益于信息时代,资讯倒是宽广很多,不过被动接受远多过主动思考,真正的视野反倒狭隘了,更无独立思想可言。11岁的胡适读《资治通鉴》中范缜的《神灭论》便形成了无神论思想,影响胡适一生。在澄衷学堂东二斋(相当于现在的高中二年级,但胡适年仅15岁)念书时,被要求以“物竞天择,适者生存,试申其义”为题作文,15岁就学习严复翻译的《天演论》、《群己权界论》等书。作为对比,100年后的高中生,思想教育严重退步,沉溺于追逐高分和标准答案,独立思想更是早就被从小开始的填鸭和洗脑扼杀干净。从此一点就可看出,大陆出不了大师很正常,要是出了大师反而不正常了。

阅读全文 »