我们不是一张被概率决定的彩票

《从0到1》这本书不是很厚,花了大概一周的时间看完了,合上书,停留在我脑海里的却是这句话:

1
你并不是一张被概率决定的彩票。

无独有偶,《创业唯艰》这本书也有下面一段话:

1
2
创业公司的CEO不应该计算成功的概率。
创建公司时,你必须坚信,任何问题都有解决办法。而你的任务就是找出解决办法,无论这一概率是十分之九,还是千分之一,你的任务始终不变。

这两本书在这个观点上的相似,让我更加相信(虽然我原来也相信):我们不是一张被概率决定的彩票

我是读数学的,从宏观上说,我深深地相信这个世界是被概率所决定的。所以,我不会去买彩票,不会自己去炒股(委托专业的人那又是另一种形式),我甚至不相信这个世界会有捷径的存在,因为我不相信自己的运气就会比别人好。所有的东西,用自己的双手踏踏实实去获取,才是最实在的。

我喜欢历史,也喜欢看历史剧。之前看过一部陈道明版的刘邦,原来不过是一个亭长,身边的人也都屌丝得很,例如某人就只是杀猪的。但是把他们放到秦末那个大时代下,他们却能成就帝王霸业。他们本身都是很普通的,那样的人在任何时代估计都一抓一大把,但是他们靠什么赢得了天下?我一直对这个问题很感兴趣,我想主要有几个方面原因吧:

  • 他们抓住了时代给予他们的机会。
  • 他们一直在向前奔跑,无论是被逼的还是自愿的。

当然还有很多的因素,但那不是我所关注的。如果刘邦还是亭长的时候,给他算概率,不知道有没有百万分之一。创业九死一生,甚至99死一生,的确很残酷,但是庆幸的是我们还活着,活着就有希望。不要用静止的眼光去看待一件事情,也许现在我们成功的概率只有10%,但是这不重要,只要我们还在坚持,还在努力,这个概率的数值就会越来越大,总有一天,它会到达100%的。

退一步讲,假如创业真失败了,你会失去什么?也许账面资产的确是失去了不少,但那也只是账面的资产而已,而你的无形资产却已经大大增加(如果你在创业公司里不努力,那就另当别论),只要你还没被打倒,你就有希望。

识时务者为俊杰,这样的话从小就听多了,大家都这样做,所以我也跟着这样做,或者说我这样做了也不能怪我。这是典型的概率决定论,90%的人都那样做了,所以我那样做也没错,振振有词的把责任推给了社会。我说过,我很不喜欢这样的话,无论别人做什么,都不应该你做错事的理由!

当然,说了这么多,并不是改变我们概率论的世界观,概率仍然主宰这许许多多的东西,但是对于你认可的或者你坚持的东西,请忘记概率。只要你肯坚持,我相信没什么是做不到的。

借用俞敏洪的一句话:

在我看到这个世界黑暗的一面后,我依然在等待每天阳光的出现。

坚持梦想,不忘初心,你才是自己人生的主人。

音乐《我愿意》

昨晚完整地看了一次《单身男女》,情不知何所起,一往而情深。。。方启宏在等了几个晚上之后,带着角蛙走的时候,说:不要回头,回头也是失望。可是当他听到车声的时候,还是回头了。当三年后,他继续再次带着蛙兄在那里等她的时候,他上厕所也不敢。他知道她喜欢那个菜,他就去学,没想到真有机会做给她吃,虽然只是吃了一点。他的公司名叫启宏与蛙,这个名字起得好好……《我愿意》真的很好听…网上的人评论说,“找张申然恋爱,找方启宏结婚”,也许吧,但是导演显然都不这么认为……火星男也许只是个童话,现实还是在地球………伤感。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
思念是一种很玄的东西 如影随形
无声又无息出没在心底
转眼 吞没我在寂默里
我无力抗拒 特别是夜里
想你到无法呼吸
恨不能立即 朝你狂奔去
大声的告诉你
愿意为你 我愿意为你
我愿意为你 忘记我姓名
就算多一秒 停留在你怀里
失去世界也不可惜
我愿意为你 我愿意为你
我愿意为你 被放逐天际
只要你真心 拿爱与我回应
什么都愿意 什么都愿意 为你

张申然找方启宏打架,不小心把蛙兄压死了,他傻傻的跪在蛙兄的前面。。。直到她给他发信息说“我很难过”,他就跑到了苏州找她。。。

人为什么这么傻,明知飞蛾扑火,却还是毫不犹豫的扑了上去。。。也许下面这幅图说明了一切:

阿甘与珍妮

Gitlab未必最佳实践

背景及目标

公司使用git和gitlab有相当一段时间了,一直只是用来做代码管理,gitlab的很多功能都没有用上。经过一段时间的试用,从上周开始,在一个项目中开始推行gitlab的其他功能,重点是代码评论,里程碑和Issue,主要想达到的目标是:

  • 项目节奏能有一个更好的把控。
  • 更加有效的进行bug管理。
  • 使得code review可以进行下去。

先说说这一周多团队试用的结果:

  • bug管理方面的确有了很大的提升。
  • 节奏好了点,但是里程碑规划还不够科学,主要项目处在测试阶段,大家对自己的开发时间还没有比较好的把握。
  • 单纯试用gitlab的代码评论功能来做code review略显单薄,没有比较好标识是否审核过的状态。

里程碑

里程碑功能主要用来把控项目的进度及节奏,对于我们来说,我们是以周为单位进行跟进。只有项目的master用户有权限设置和编辑里程碑。

  • 所有项目以周为单位建立里程碑
  • 原则上本周的里程碑不接受新的Issue,除非是严重的bug,需要马上修复
  • 除了本周正在进行的里程碑之外,还应该往后规划一个或者多个里程碑
  • 里程碑的名字以周五的日期为标识,例如“v2015.06.05” (方便可以根据里程碑的名字对个人的工作进行汇总查看)

Issue

  • Issue是谁提出的,谁就要负责跟进Issue的解决情况。
  • 每个Issue从属一个里程碑
  • 提Issue的时候需要指定给一个人(谁来完成这个Issue),如果有些Issue不知道应该指派给谁,就直接指派给项目负责人
  • 一个Issue可以是一个bug,一个建议,一个特性,总之是一项可以指派给一个具体的人的任务。
  • 可以自己提Issue指派给自己,例如发现某块代码需要优化或者重构等等。
  • 如果是代码相关的Issue,最后在git commit时最好能够关联对应的Issue
  • 指派错误时可以重新指派:例如A被指派给一个Issue,但是A觉得这个应该由B来完成,这时A可以把这个Issue重新指派给B
  • 当Issue被关闭时,其发起人应该定时(例如每天的某个时间)检查那些关闭列表(或者可以直接查看邮件列表),并检查,如果确实已经完成,可以打上一个已完成的标签,否则可以评论后重新打开该Issue。
  • Issue的标题应该基本说明了问题,里面的描述应该更多的是辅助性描述

Code Review

  • 大家提交的每次commit都会有记录,可以直接进行diff操作,并且可以评论。
  • 除了指定需要相互review的同事,你对谁的代码有兴趣,都可以直接查看或者评论。

ma6174/vim所包含的插件

在用了几天的spf13-vim这个配置之后,觉得很不顺手,重新换回了这个配置文件 https://github.com/ma6174/vim 。它所包含的插件如下:

gmarik/vundle

这个不用说。。。

tpope/vim-fugitive

a Git wrapper so awesome, it should be illegal

https://github.com/tpope/vim-fugitive

rstacruz/sparkup

Sparkup lets you write HTML code faster.

https://github.com/rstacruz/sparkup/

Yggdroot/indentLine

L9

FuzzyFinder

command-t

git://github.com/wincent/command-t.git

Auto-Pairs

python-imports.vim

CaptureClipboard

ctrlp-modified.vim

last_edit_marker.vim

synmark.vim

SQLComplete.vim

Javascript-OmniCompletion-with-YUI-and-j

jslint.vim

pangloss/vim-javascript

Vim-Script-Updater

ctrlp.vim

tacahiroy/ctrlp-funky

jsbeautify

The-NERD-Commenter

django_templates.vim

Django-Projects

使用git来管理nginx的站点配置文件

在某次在服务器上rm造成大麻烦之后,决心使用git来对nginx的站点配置文件进行统一的版本管理。

1
2
3
说明:测试机上的配置文件的后缀为.conf
为了规范,命名规则为:域名.conf,例如yjq.ibbd.net.conf
READ MORE

mysql数据表设计经验(结合laravel)

这是一份对前阶段数据表设计经验的总结:

READ MORE

mysql存储过程

sql存储过程的实现跟一般的语言相比,有点特殊,有很多值得注意的地方,下面以一个支付的存储过程为例:

READ MORE

使用laravel封装mysql存储过程的调用接口

在使用存储过程时,调用时通常如下:

1
2
3
set @out_status = 0;
call procedure_name(param1, ...,, @out_status);
select @out_status;

比较啰嗦,有必要进行一次封装,如下:

READ MORE

mysql中的TIME\_FORMAT与DATE\_FORMAT函数

之前一直使用TIME_FORMAT来格式化日期,如下:

1
select TIME_FORMAT(CURRENT_TIMESTAMP, '%y%m%d');

但是今天发现在有些版本的mysql上会返回0,不是想要的结果。查了一下:

1
2
3
TIME_FORMAT(time,format)
这象上面的DATE_FORMAT()函数一样使用,但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。
其他修饰符产生一个NULL值或0

DATE_FORMAT

改成使用DATE_FORMAT即可:

1
select DATE_FORMAT(CURRENT_TIMESTAMP, '%y%m%d');

在多个文件中执行替换操作

有些需要在多个文件中执行替换操作:

1
2
3
4
5
# 在执行替换之前,先确认
grep "abcd" *.log
# 执行替换
sed -i "s/abcd/1234/g" *.log