生活总是莫名其妙

生活真是各种起承转折,懒懒散散准备好入职资料,洗掉脏衣服迎接新工作的时候,被电话告知“您明天不用来了”。

脑子一瞬间放空,然后本能的不失逼格的回一句“明白,再见”。

这生活的幽默把我玩大了,来电时间是下午1:31,而我在1点的时候放弃了原本2:00的一个面试。

挂掉电话,喊不出来,只感觉压抑,一股绝望般的情绪夹杂着疲倦将我击蒙。感觉房间里忽然很灰暗,越是在黑暗中,越有对光的渴望。

我不能就这么放弃,拿好简历穿上衣服打的去。出租车上阳光这么好,风这么舒服,司机虽然走了远路,我想即使面试不成功,也当是散心了。

还好他们没有因为时间原因责备我,做完测试题,和平台经理的面试过程让我感觉一切都是天意。

Read More

等风来

一向文采翩翩的我好久不写东西,居然不知道从何说起

将《等风来》看了两遍,感觉自己很像程羽蒙,自诩不凡,想一直跑着冲着就能飞起来。

跑了好久,到不知道为什么跑的这么急,这么慌,怕跑慢了我就老了,就没法趁年轻疯狂了。

装着理想,还要看着房价,当自己疯着狂着度过这一年的时候,银行卡的数字总是很孤单。

知乎上看到一个问题,你什么时候感觉自己很穷。

前两天回烟台宿舍小party的时候有件小事忽然让我感觉自己很穷。

Read More

Git reset和revert的区别

两者的说明

  • git reset 重置
  • git revert 撤销

从字面上理解,重置是不管你做了多少次commit,一次性就撤回去了。

撤销的话,只能撤销某一次的commit

譬如,

commit-1, commit-2, commit-3, commit-4

运行 git reset --HARD HEAD~2

重置到倒数第三个状态 ,那么还剩

commit-1, commit-2

运行 git revert HEAD~2

撤销倒数第二个状态, ,就是删除 commit-2,那么还剩

commit-1,commit-3,commit-4

Read More

Socket.io握手和验证流程

Socket.io 支持两种方式的认证:

  1. 在初始化或者对话握手的时候进行全局的验证。
  2. 每个namespace下进行独立认证。

全局认证和namespace层的独立认证可以同时使用或者单独使用其中某一个。他们唯一的共同点是通用 handshakeData这个对象。 这个数据通过握手时发送的数据生成。所以如果想更好的了解怎么使用认证,首先要先理解握手过程。

握手

当客户端想和Socket.io服务器建立一个稳定的实时连接的时候,需要首先进行握手过程。握手过程通过一个XHR请求或者JSONP(跨域请求)请求进行初始化。

服务器收到连接请求时便会收集请求数据以便后来可能使用。这么做有两个原因:

  1. 用户可能想根据客户端的头信息(headers)或者IP地址进行认证。
  2. 不是所有的传输协议在与服务器建力实时连接的时候会发送头信息,所以我们内部的将握手信息存起来,确保用户在连接建立以后还可以使用这些数据。比如:你可能想在cookie headers里面读取session id,或者为一个连接初始化Express session

handshakeData对象包含以下信息:

1
2
3
4
5
6
7
8
9
10
{
headers: req.headers, // <Object> 请求的头信息
time: (new Date) +'', // <String> 连接的时间信息
address: socket.address(), // <Object> 远程的IP和端口对象
xdomain: !!headers.origin, // <Boolean> 是否是跨域请求
secure: socket.secure, // <Boolean> 是否是https加密协议
issued: +date, // <Number> 连接建立时的时间戳
url: request.url, // <String> 请求入口地址
query: data.query // <Object> URL参数对象(url.parse().query 的结果)或者空对象
}

address对象请参照 socket.address()

Read More

蛋疼时候的碎碎念

我不愿让你一个人,从大三唱到如今毕业一年。也始终未曾遇到那位和我一起去听五月天演唱会的人。我听五月天,也听E神。E神1874里唱 “仍然没有遇到那位和我绝配的恋人 你根本也没有出现,还是已然逝去”像是最能说明的吧。

正因为五月天,所以我不想让青春如此荒凉谢幕。 我从不怕爱错就怕没爱过。
如果没有一个人一起去听过五月天,青春是少了多鲜艳的一抹亮色。

盛夏正要一天一天的过完,6.11石家庄听完,8月17也马上过去。听过这场,如果再不曾遇到那么一位,我便不会再去演唱会了把。人生啊,总有些事儿是不能完美,总有些事留在那里成为遗憾。

理想中的她应该是个吃货,懂得吃才会生活。 听五月天E神爱吃辣~ 哈哈
别看上面写的那么文绉绉,我真不是文艺青年。。范儿青年才是真身。所以。。她也不能是文艺青年,不然讲个冷笑话她都能当成古诗文 = = ! 而且自古文艺青年忧伤多。。我喜欢笑起来没心没肺还能保持八颗牙齿的 哈哈~

===== 仅以此文纪念我那点无处释放的寂寞悲伤把 =====

Git协作流程规范

平时在使用Git时候,如果有冲突,就需要一次合并提交, 导致整个git 主线很乱,而且经常的合并比较容易出现问题。 这样是 non fast-forward 合并。

可以看下这边文章,这篇文章是我们现在用的方法:

解决合并的冲突 - non fast-forward合并

我们要改为用 rebase 进行合并, 这样就可以是 fast-forward 合并了,请查看这边文章

rebase 合并的冲突 - fast-forward合并

具体的流程如下

1.去自己的工作分支

1
$ git checkout work

然后开始工作,开发功能修复BUG
….

Read More

jQuery插件开发入门

插件方法级别

1.创建类级别的方法

调用方法为 $.PluginName(), 像 $.ajax, $.each 都是类级别的
示例:

1
jQuery.PluginName = function(){..........}

这种做法实际上是对jQuery类进行了扩展,所以也可以写为

1
2
3
$.extend($,{
PluginName:function(){.....}
})

2.创建对象级别的方法

调用方法为 $("Selector").PluginName();

示例:

1
$.fn.PluginName = function(){.........}

即对fn对象进行了扩展,等同于:

1
2
3
$.extend($.fn,{
PluginName:function(){......}
})

Read More

You've got to find what you love

You’ve got to find what you love.
Keep looking. Don’t settle
—–Steve Jobs

11月11,末日还未来临,第22个光棍节。

还记的上年这时候说,下年不能再过这节,(貌似前年也是 – -),月老不给力啊··

本着许三多不抛弃不放弃,忠于爱情忠于党的信念,终于母猪赛貂蝉了!

内心的完美主义教导我,宁可寂寞开成海,不吃不是我的菜。

我得和她去看五月天的演唱会···努力啦,骚年

再说一遍:下年不能再过这节!

Read More