stay hungry stay foolish

love Ruby.

Yearly-summary

创业不易, 我也跟着谢总等创始人们的脚步登上了这艘船. 在这里我收获了许多的开心! 本想认真构思这一年的所思所想, 却因碎片化的记忆太多, 并没有找到好的故事线来描述!那我随意了!

大雄和IT部

“大雄,大雄,大雄 又出bug了” 每次听到这句话的时候我并没有沮丧, 反而我很庆幸和小窃喜,小伙伴们都非常努力的雕琢属于我们的产品.

当我快速解决的时候我会有些小得意,当我陷入泥潭有爬出来的时候我会有释然的顿悟. 我们每个人都已独特的性格,和闪光点 例如我们IT部:

  • 龙哥我们的全真教道长,教我打出了咏春拳,在各种拳法上给予了我耐心的指导!
  • 海花我们的女汉子,IT部首席各种疑难杂症的大总管!
  • 鱼饼我们的装机达人,全栈小王子!
  • 俊雄我们的养生达人,前端老王子!
  • 晓晨我们的南派汪峰,UI&&前端杀手!
  • 可乐我们的南派汪峰的徒弟,UI怪才!
  • 少武我们的九阳真经传人,PHP圣骑士
  • 文峰我们的少年虚竹,PHP勇士
  • 何涛我们的天山童姥,拆弹部队第一勇者
  • 而我自封"雄者".

在这里忙碌又快乐,紧张又充实!

在dmc大家庭的日子

大伙儿的给我起了大雄的昵称, 如今大雄的昵称已经注入了我生活的方方面面。同时获得快乐工作,快乐生活的两个属性.

这让我回忆起了以前的工作, 快乐总是要对比出来的. 我记得以前的工作并没有给自己太大的代入感, 也许只能成为这个产品的一个螺丝钉. 如今工人阶级站起来了,我们想法能够成为产品的指南针,我们是能够产于这个产品的每一个细节的, 这种感觉 awesome!

加上自己的性格比较的直,如果自己瞧不起(态度和德行)的人我会特别的反感! 然而我大都非常热爱我们团队的成员, 每个小伙伴都特别有意思!

我的收获

  • 学会合理使用笔记:笔记记录日常思考 灵感创意 读书笔记 经验总结等.随着见识和阅历的增加 想法会不断完善,这个时候笔记就是我们的第二大脑!
  • 理清了对产品的认识,这样说吧:“以前我总是觉得吃撑的时候最舒服,现在当我吃的有格调时最舒服!”
  • 但是更多的还是收获的朋友们之间的友谊,人是社会化的动物,合理的交流能够开阔我们是视野眼界,讨论背景知识,有思想交流.如果没有,辣么通过不断努力尝试将自己的想法清楚地呈现给他人的过程把自己的思路理得更清楚,她好我也好!

2016的给自己的目标

  • 越来越雄
  • 向构架师方向靠拢,我会多请龙哥吃饭,嘿嘿!
  • 学习Jeckie的气场和霸气,还有果断处理的能力.暂时没有胆量请Jeckie吃饭!
  • blog/笔记写的越来越好!
  • 减肥到150斤!

互联网时代

哦,船长,我的船长!我们险恶的航程已经告终, 我们的船安渡过惊涛骇浪,我们寻求的奖赏已赢得手中. 港口已经不远,钟声我已听见,万千人众在欢呼呐喊, 目迎着我们的船从容返航,我们的船威严而且勇敢.

献给谢总和Jeckie,以及其他我不太熟悉领导!

新年祝福

  • 预祝Jeckie和小宝宝快乐成长! :)
  • 预祝谭纯早日脱单!
  • 预龙哥跑步更加牛逼!
  • 预祝IT小伙伴们快乐工作!
  • 预祝DMC全体小伙伴们快乐工作!

同时 * 谢总带领咱们的DMC大家庭茁壮成长!

原谅我的文笔我已经词穷了!

No-country-for-old-men

我们其实都看懂了这部电影

一旦到手就不想失去,即便那本非你所求

Imgur

Osx-xcode-install

brew install 出现 configure: error: cannot run C compiled

当brew install 出现

configure: error: cannot run C compiled

是系统升级最新的 Mac OS X El Capitan.造成的,无法运行C编译的程序。

Solution: 查看log,发现这是Xcode的命令行工具造成的。

运行以下命令:

1
xcode-select --install

希望它可以为您节省几个小时的使用Google :)

Phpunit

不管什么时候都要养成写测试用例的好习惯

一定要学会写一手好测试用例!

Php_reverse

php 反射机制

如果你使用过laravel IoC 的话,一定对其强大的依赖注入机制感兴趣

简单的说 laravel 的依赖注入机制离不开 php v5 后的反射机制

So look it :

PHP5添加了一项新的功能:Reflection。这个功能使得phper可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。

反射是什么?

它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象的方法的功能称为反射API。反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。 其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言。 php反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互。借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方法(也不同于常规调用),传递参数,动态调用类的静态方法。

反射api是php内建的oop技术扩展,包括一些类,异常和接口,综合使用他们可用来帮助我们分析其它类,接口,方法,属性,方法和扩展。这些oop扩展被称为反射。

通过ReflectionClass,我们可以得到Person类的以下信息: * 1)常量 Contants * 2)属性 Property Names * 3)方法 Method Names静态 * 4)属性 Static Properties * 5)命名空间 Namespace * 6)Person类是否为final或者abstract 例子

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
30
31
32
33
34
35
36
37
38
39
40
class Person {
    /**  
     * For the sake of demonstration, we"re setting this private 
     */
    private $_allowDynamicAttributes = false;

    /** type=primary_autoincrement */
    protected $id = 0;

    /** type=varchar length=255 null */
    protected $name;

    /** type=text null */
    protected $biography;

    public function getId()
    {
        return $this->id;
    }
    public function setId($v)
    {
        $this->id = $v;
    }
    public function getName()
    {
        return $this->name;
    }
    public function setName($v)
    {
        $this->name = $v;
    }
    public function getBiography()
    {
        return $this->biography;
    }
    public function setBiography($v)
    {
        $this->biography = $v;
    }
}

接下来反射它,只要把类名"Person"传递给ReflectionClass就可以了:

1
2
$class = new ReflectionClass('Person');//建立 Person这个类的反射类  
$instance  = $class->newInstanceArgs($args);//相当于实例化Person 类  

1)获取属性(Properties):

1
2
3
4
5
6
7
8
9
$properties = $class->getProperties();
foreach($properties as $property) {
    echo $property->getName()."\n";
}
// 输出:  
// _allowDynamicAttributes  
// id  
// name  
// biography  

默认情况下,ReflectionClass会获取到所有的属性,private 和 protected的也可以。如果只想获取到private属性,就要额外传个参数: $private_properties = $class->getProperties(ReflectionProperty::IS_PRIVATE); 可用参数列表:

1
2
3
4
ReflectionProperty::IS_STATIC
ReflectionProperty::IS_PUBLIC
ReflectionProperty::IS_PROTECTED
ReflectionProperty::IS_PRIVATE

如果要同时获取public 和private 属性,就这样写:ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED。 通过$property->getName()可以得到属性名。 2)获取注释:

通过getDocComment可以得到写给property的注释。

1
2
3
4
5
6
7
8
9
10
11
foreach($properties as $property) {
    if($property->isProtected()) {
        $docblock = $property->getDocComment();
        preg_match('/ type\=([a-z_]*) /', $property->getDocComment(), $matches);
        echo $matches[1]."\n";
    }
}
// Output:  
// primary_autoincrement  
// varchar  
// text 

3)获取类的方法 获取方法(methods):通过getMethods() 来获取到类的所有methods。

4)执行类的方法:

1
2
3
4
$instance->getBiography(); //执行Person 里的方法getBiography  
//或者:  
$ec=$class->getmethod('getName');  //获取Person 类中的getName方法  
$ec->invoke($instance);       //执行getName 方法  

I Am Totally in Love With Sublime

我已经无可救药的爱上了sublime

2年前接触 sublime 最开始我只是简简单单的使用,同事们都劝我抛弃IDE ,我始终没有那个闲心去弄那个配置,!

直到现在我才从这门哲学中领悟到了我要成为什么要的人,一个简简单单Geek范儿的人。

  • 首先你得有个sublime 个人所使用的是 2
1
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
  • 然后先去吧快捷键练习十几次吧

  • 最后你就被洗脑了

So fucking Good~~~~~

I Hate Windows

在windows下面做开发是痛苦的

最开始我学习编程的时候,使用vs在windows开发,那时候是愉快的! 无知的人都可爱,容易得到满足,当你了解这个世界接触更多东西了。回过头来一看。记忆确实那么不堪 我不得不说,windows是人类历史性的产品,没有他人类社会不会发展的怎么快!这句话一点也不过分!

balabala………….

可是,使用windows,是糟糕的体验,我甚至都没有勇气写下去了! 妈蛋我居然还使用thinkpad,越想越气!

quick settings you computer