作者归档:Dante

RSS feed of Dante

最后更新于 .

之前有句很火的话:

梦想还是要有的,万一实现了呢?

听起来梦想确实是一件很重要的事,对啊,万一中头奖实现了呢?

然而我想说的是:

梦想,一文不值。

其实,之前也一直有类似的想法,只是一直没有想到合适的话总结出来。

正好今晚和媳妇没事看一起看了《我是路人甲》这部电影,思路也有渐渐清晰了一点。

在这部电影里,几乎所有人都有梦想,然而正因为所有人都有梦想,所以梦想才变成了一个极其廉价,一文不值的东西。

老人会告诉你,年轻人,一定要有梦想。

于是这个年轻人就如醍醐灌顶般拥有了梦想,之后就要出任CEO,迎娶白富美,走向人生巅峰了?

听起来就好像,上帝说要有光,这个世界便有了光一样简单?

然而这显然是没用的,我们从小就知道:

太容易拥有的东西,每个人都可以轻易拥有的东西,基本都是不值钱的。

而那些集中在少数人手里的,才真正有价值,比如财富,比如真爱,比如自由。

正因为梦想的来的轻易,所以,我才说它廉价。

而更进一步,我想说。

不只是梦想没有价值,为梦想而奋斗这件事同样没有价值。

大部分人,听一趟励志课,看几篇心灵鸡汤,都足以刺激他去为自己的梦想奋斗个几天,几周,或者长一点,几个月 ...

最后更新于 .

《创业这件小事》这个系列也是很久没写了,一是确实没有时间,二是如果不是真正的干货,写出来也没什么意思。

我刚特意去看了一下《创业这件小事(六)》的写作时间,1月26日。

而在这7个月里,确实自己很多的东西都已经改变了。

一. 管理风格

其实在整个创业过程中,我一直在摸索,自己的管理风格到底应该是偏向“严”还是偏向“慈”。

过去我一直把握不准,所以很多事情上也能看得出来。

比如基本不辞人,都是员工炒老板鱿鱼。

比如有时候却会在晨会上责骂人。

很纠结,很矛盾。

只是渐渐的,在经历过这么多的人和事之后,我开始反思自己这种情况的原因。

而结论就是:

我太在乎小弟们说我是个好老板,还是差老板了。

只是最近,我终于想明白了:

我根本不需要你喜欢我。

我需要我的合作方喜欢我,我需要我的投资方喜欢我,可我为什么需要一个我给发着工资的人喜欢我?

想想当年没创业的时候,都以为创业是古惑仔混黑社会,讲兄弟义气。

但实际上是,有钱赚的时候别人才跟你讲兄弟情义;辛苦的时候别人只会催你每月要发的薪水。

 

所以事情就变得特别简单了:

我想在晨会上拍桌子,那是我乐意。

我想跟大家吃饭唱K,那也是我乐意。

我不需要跟你解释什么,你愿意跟着干,苦点累点,我可以承诺万一公司成了,绝不会少你的 ...

最后更新于 .

写博客真的是一件很难坚持的事情,经常忙起来或者犯懒就懒得动笔。
所以这次就随便聊聊吧,正好最近的感触也比较多。

我发现人啊,真的是在成长的过程会不停的自我否定,从而自我成长。
今天的我看上一个月的自己,有时候都觉得不可理喻。而一个当时觉得几乎迈不过去的坎,现在看起来似乎也就那么回事。

以下有些观点可能大家未必认同,如果之前的自己可能为了避免争论就避而不谈,而现在的我觉得无所谓。
不认同就不认同,哪能那么巧,你的所有观点别人都认同?
而促成我开始转变观念的导火索,在于一部电影里对甘地两句话的引用:

以暴力取胜意味着失败,因为这只是暂时的胜利。

若是心中存在暴力,就把它发泄出来,这要胜过用非暴力来掩饰心中的脆弱。


当然,我这里不是要支持暴力或者是反对暴力。

我所理解的这两句话的真正指导意义在于:

真心实意的挑战要比虚情假意的附和更有价值。


ok,咱们挨个说。


一. 关于对于物质的追求

说实话,似乎大部分国人对于物质的崇拜似乎都不太愿意在公开场合表现出来。因为中国有很多不好的词语来形容他们:守财奴,金钱的奴隶,很物质。

也有人很喜欢转发一些文章,什么自己可以配得上几万的dior,也穿的了几十的地摊货。
而正好前一段时间朋友圈有个朋友转了这篇长文来驳斥:那你倒是买啊,买啊,买啊。。

为什么我们看到一个身价过亿的老板每天中午只吃馒头咸菜立马就会当作一个励志故事?
为什么我们看到一个职场白领每天中午只吃馒头咸菜可能就会觉得这个人很扣?


因为你要想能够把姿态放低,那么首先你本身的姿态要足够高。

所以,说那些自己配的上dior也配的上地摊货的朋友们,咱们还是得先努力让自己买dior跟买地摊货一样慷慨才行。

当然,这个话题不只是到这里。

我真正想说的是 ...

最后更新于 .

最近这一周都在忙kpush的项目,其实看名字大家也应该很容易联想到 jpush,确实名字相似,功能也是类似的。

kpush主要是用来解决app实时推送的问题。

有人要问,为什么明明有了jpush,百度推,还有各种大公司的推送,我还要自己写一个呢?

因为我实在受不了他们的某些限制。

  1. 表面免费,实际不交钱就会把你的到达率卡在某个值上永远上不去
  2. 限制太多,又是发送频率不能超过多少,又是哪些统计数据不交钱不能看
  3. 推送太慢,可能由于接入应用太多导致用户量级太大,所以他们不得不做了很多延时发送的处理,但其实对于小体量(百万连接左右)的应用来说,直接实时下发就ok了。套用某广告说的:我要的,现在就要!

而相对的,kpush特意解决了这些问题:

  1. 完全开源免费,随意部署
  2. 自带统计后台,看到真实的到达率和点击率
  3. 与客户端保持tcp长连接,并30秒心跳一次。所有推送消息均实时下发,不做任何延时。至于发送效率,瓶颈主要在gateway端,测试过200万链接发送也只需要几秒,所以对一般小体量的应用,部署一台kpush服务器完全够用。
  4. 支持分布式。如果真的用户量级很大(千万级),也可以轻松搞定

kpush服务器端也是基于maple来实现的。

github地址为: https://github.com ...

最后更新于 .

首先是对死者的哀悼,望逝者安息。

 

我认为,这件事情唯一对我们有用的启示是:

控制好自己的工作节奏,不要最后得不偿失。

然而,很多人却并不止于此。

以这件事情为导火索,很多网友开始发起了抵制加班的号召,这在我看来真的是居心叵测的。

作为一个个体,你完全有选择加班或者不加班,在这家公司或者不在这家公司的自由,完全不需要去号召什么。

那么为什么还要号召呢?

因为这些人心里明白,我要是不加班,我要是不努力,就会落在别人后面,赚钱比别人少,生活比别人差。

所以怎么办呢?

简单,让大家都和我一样不加班吧,这样不就都和我一样停下来了?

看看他们的说辞:

你对公司这么忠诚,对项目这么认真,你出事了,公司处理这么冷漠,你还那么努力干啥?

初听起来好像有点道理,仔细想想却狗屁不通。

这里面其实偷换了一个概念:

我努力工作,是为了让公司对我好一点

但事实上是:

我努力工作,是为了让我的生活好一点

好的公司会对你的努力变现更快一些,但是差的公司也并非就一定要和你的人生绑定在一起。

所以如果公司无法回报你,你想的应该是换一种处事方式,再不行换一家公司。

而不是因此而放弃努力。

一方面说着:世上最可怕的事情就是比你成功的人还比你努力;这世上大部分努力的程度还轮不到拼天赋的程度。

一方面又说着:珍惜生命,远离加班。

朋友圈里充斥着这些言论,选一种真正适合自己的吧。

最后更新于 .

最近在grahite上看到响应时间变得很长,虽说之前没有特意去优化性能,但是感觉也不应该这么差才对。

QQ20150406 1

我们的服务器框架用的就是我之前开源的 maple,每个命令字都对应一个入口函数,如下:

@app.route(2)
def login(request):
    logger.error("login: %s", request.gw_box)
    uid = request.box.get_json()["uid"]
    request.login_client(uid)
    time.sleep(1)
    request.write_to_client(dict(
        ret=0,
        body="login %s" % uid
    ))

所以只要找到一种方法分析这个函数对应的内部调用情况就可以了。

很方便的,python内置了cProfile类来完成我们想要的功能,我给封装成为一个装饰器,用起来更方便一些,当然在django和flask中也可以直接用。

def monitor_profile(func):
    import cProfile
    import functools
    @functools.wraps(func ...

最后更新于 .

马上就要到羊年了,给大家拜年啦!~

因为一些习俗原因,今年没有像以往一样,早早飞回老家,而是要在深圳这边过完年三十,初一的早上再飞回去。
其实就算是提前回老家,工作这么忙,估计也不会多提前几天的。

这两天留在深圳,看着深圳原本最拥堵的车道都变得畅通无阻,也确实证明深圳有多少像我一样,远离家乡,在外拼搏的人。
这也是我喜欢深圳的原因之一:来了,就是深圳人。

深圳是包容的,只要你有能力,那么就一定能找到那个能展示你能力的地方,如果找不到,那只能证明你能力还不够。

其实从我在武汉上大学开始,再到深圳工作,这一路向南,有很多人跟我说,还是回老家好,在外面干几年,就早点回来吧。
最早的时候,我也在纠结,我应该怎么做。
我的高中同学,基本都留在了老家,或者出来,又回去了。

开始的时候,我这样说服自己:如果就这么回去老家找个轻松的工作,那么当年又为什么要离家那么远读大学?
再后来,我看到了一篇文章,他是这么说的:在外漂泊,本身也是一种试炼。一部分人会留下来,一部分人会回去。而留下来的更小一部分人会爬的更好,更好,成为这个城市的中坚力量。

而我选择,通过这场试炼。

然而,我也知道 ...

最后更新于 .

有段时间没写创业相关的文章了,这篇算是对之前一些想法的总结吧,记录在这里。

一. 得失

前段时间和朋友一起吃饭,朋友问我,创业后是否有后悔过?

这个问题其实我自己在内心里早就问过自己很多遍了。这个问题还是要从创业的初心开始说起。

当时离开腾讯的最大原因在于到达了职业发展的天花板:

  • 技术成长。业务已经基本处于稳定阶段,不再有之前从0到1、或者从1到100的机会。
  • 管理职位。由于业务扩张缓慢,所以一堆人都基本处于等位子状态
  • 业务方向。腾讯的业务向来慢别人一拍是业界常识了。当时手机端已经崛起而开放平台的老大们还抱着页游这颗摇钱树不放,注定业务在短期内无法再高歌猛进。应用宝13年上半年才合入开放平台准备发力,可见一斑。

所以如果我当时如果选择留下,当组长确实没有问题,但是技术能力也会基本停滞了。

但创业则是完全不一样的事情,无论技术上的深度还是广度,都是在大公司当螺丝钉是无法比的。

比如你要自己从头封装一套socket的网络通信库,包括服务器端和客户端。

比如你要设计好服务器的架构模型,并且要对其稳定性、性能、可扩展性承担最终责任。

再比如你要设计好自动化运维的各个部分,包括监控、告警、运维统计、运营统计、各种报表,大公司已经有的那一套,你都要重新实现一遍。

这个过程很痛苦,我切身的经历过,但现在,这些东西,全都是ready的,而这种成就感,是无以言表的。

 

但是,实事求是,除了技术的追求,我们必须要面对另一个部分 ...

最后更新于 .

之前一直用友盟的自动更新功能,但是友盟一直没有内置实现强制更新的功能,如果要在其基础上模拟实现会很麻烦,所以干脆就自己做了。

其实实现上比较简单,这里跟大家介绍下。

1. web接口

需要提供一个接口供客户端查询更新状态,并且在需要更新时,告知客户端新APK地址。

接口参数如下:

  • package   包名,因为有时候会出现同一个应用换包名打包的情况
  • version 版本号,即android清单文件里面的versionCode
  • channel 渠道号
  • os 操作系统,android/ios。ios 这里仅作预留。

 

之所以传入这些字段,是要在与服务器端的包匹配时,务必满足:

package, channel, os 相等,并且服务器端的version 大于 客户端传入的version

代码如下:

os = request.GET.get('os')
pkg_name = request.GET.get('package')
channel = request.GET.get('channel')
version = request.GET ...

最后更新于 .

工欲善其事,必先利其器。

其实这篇文章到现在才写,也是想将这些工具都经过时间的验证,确保没有问题才分享给大家。 接下来咱们就一个个来说。

1. 任务管理

推荐: http://tower.im

Snip20150111 3

 

任务管理的重要性毋庸置疑,然而小团队一定要注意的是,避免陷入大公司繁杂的需求跟踪流程里面去:腾讯的tapd就是很好的例子,详尽,什么都考虑到了,但也同时导致用起来份外复杂。

其实还有一个做的比较好的任务管理网站:https://www.teambition.com,只是因为一开始就用的tower,没有太多问题,所以就懒得换了。

 

2. 代码管理

推荐: http://bitbucket.org/

NewImage

既然用bitbucket,版本管理软件肯定就是用的git了。

可能有些朋友会推荐用 http://github.com,其实如果舍得花钱的话,确实github会更出名一些。

我这里推荐bitbucket,很大原因是因为他私有仓库是完全免费的。

当然,最近国内的开源中国也宣布其私有项目完全免费了,和tower同样的原因,因为之前已经在用bitbucket,所以就懒得换了,有兴趣的同学可以去看看:http://git ...