尊敬的刘总,各位领导及各位同事:

  大家好,很荣幸自己可以代表员工在华泰商学院的开学典礼上发言,感谢公司各位领导一直以来的关心及指导。

  作为一名普通的物业管理员,与所有员工一样,正在亲历着公司因为互联网化所带来的全新变化,在这个变化中,我们不断的尝试、创新、形成属于我们华泰物业自己的文化,这是一次全新挑战,同时也是我们员工们一次难得的成长机会。

  公司成立华泰商学院的目的,我觉得是想我们在公司转型成长的过程中能够跟的上脚步,让我们用知识来武装自己,用知识提升我们的能力,用能力更好的服务于业主。用更加专业化的服务来赢得业主的信任,从而获得业主对我们自身对华泰物业的认可。

  在工作中我相信每个人都有自己所要实现的梦想和想要达到的目标,可是空谈梦想和目标只会让我们离它越来越远。

  目标的实现需要公司领导的带领,但也需要我们自己的努力。设定目标,做好计划,主动思考,加强自身学习,不断尝试,坚持到底。公司为我们每一个人提供了同等的平台 ,商学院的成立正是我们起航的码头,在这个平台中,我们学习他人之长,补自己之短,我们可以把自己懂得会的拿出来分享与他人,在这个大家庭中一起进步,一起成长。

  古人曾说,三日不读书,便觉语言无味,面目可憎,现在我们有了一个这样的学习平台,再不读书,不充实自己,面部的表情都可憎起来了,谈何对业主热情服务呢。

  在公司大目标的前提下,建立自己所要实现的小目标,只有我们小目标的实现,最后才能完成公司大目标的实现。因此学习的过程,充实自己的过程虽是自己人生价值实现的过程,但也更是为公司成长和蜕变付出自己努力的过程。

  最后预祝我们自己的商学院越办越好,也希望我们可以成长为比今天更好的自己。

  谢谢大家。

1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图:
environment variable
2. 在 "开始>运行" 中打开 %Home%,新建一个名为 _netrc 的文件。

3. 用文本编辑器打开 _netrc 文件,输入 Git 服务器名、用户名、密码,并保存。示例如下:

machine git.xxx.com
login git_user
password git_pwd

OK, 试试吧,还需要不需要用户名密码了。

在 Windows 下创建 MongoDB 服务命令,记录下。

    sc create MongoDB binPath= "\"D:\Program Files\mongodb\server\3.0\bin\mongod.exe\" 
    --service --config=\"D:\mongodb\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

密码保护:visual studio ultimate 2013

2015/06/10 / 要查看留言请输入您的密码。 / 581 围观

这是一篇受密码保护的文章,您需要提供访问密码:

iscolor 是否是颜色 接受正常的颜色关键字和十六位表示法以及RGB表示法等。
isnumber 是否是数字
isstring 是否是字符串
iskeyword 是否是关键字 这个没搞明白到底用来判断什么东西。
isurl 是否是 url  例如 url(...),貌似必须这样子才行。

ispixel 是否是像素  应该判断给定的值是否是 数字+px 的。
ispercentage 是否是百分比 应该判断给定的值是否是 数字+% 的。
isem 是否是 em
isunit 是否是某个单位的,两个参数 如果待验证的值为指定单位的数字则返回 true

用法:(同时包含了 when 的一种用法)
.mixin (@a) when (isnumber(@a)) {
padding:@a;
}
.x {
.mixin(5);
}
如果 .x 中的 mixin 给的是数字的话,输出:
.x {
padding:5;
}
否则什么都不输出。

来源:

http://isux.tencent.com/h5-performance.html

以记录。

来源:

http://isux.tencent.com/css-animation-skills.html

以记录。

面向对象编程

封装

对象生成的原始模式

1
2
3
4
var Cat = {
    name  : '',
    color : ''
}

然后生成实例对象,

1
2
3
4
5
6
7
8
9
var cat1 = {};
 
cat1.name = '大毛';
cat1.color = '黄色';
 
var cat2 = {};
 
cat2.name = '二毛';
cat2.color = '黑色';

很简单,但问题是,这样生成的“实例对象”其实和原型对象之间基本没有任何联系。而且生成多个实例的时候,没有简洁的方法,会非常麻烦。

原始模式的改进

1
2
3
4
5
6
function Cat(name,color){
    return {
        name  : name,
        color : color
    }
}

然后生成实例对象,但其实就等于在调用函数,返回一个对象。

1
2
var cat1 = Cat('大毛','黄色');
var cat2 = Cat('二毛','黑色');

这种问题是,如果 Cat 中不进行额外的处理,这里仍旧不能反映出来 cat1 和 cat2 内在的联系。

构造函数模式

1
2
3
4
function Cat(name,color){
    this.name = name;
    this.color = color;
}

现在就可以生成实例对象了。

1
2
var cat1 = new Cat('大毛','黄色');
var cat2 = new Cat('二毛','黑色');

这时 cat1 和 cat2 会自动含有一个 constructor 属性,指向他们的构造函数。

1
2
console.log(cat1 instanceof Cat); //true
console.log(cat2 instanceof Cat); //true

但此时这种方式仍旧存在其固有的问题。假设这里有一个方法。

1
2
3
4
5
6
function Cat(name,color){
    this.name = name;
    this.color = color;
    this.type = '猫科动物';
    this.eat = function(){console.log('吃老鼠');}
}

生成实例

1
2
3
var cat = Cat('大毛','黄色');
console.log(cat.type); // 猫科动物
cat.eat(); // 吃老鼠。

表面上没什么问题,用的时候也很好用,但是假如我们需要生成大量的 Cat 的实例,那么每个实例都会有 type 属性和 eat 方法,而且这两个都是一摸一样的内容,导致了内存的浪费,因为此时两个实例的相同属性和方法,并不是同样的内存地址。会存在多份。

那么,能不能将所有的相同的属性和方法只存在一份,然后每个实例同样的也可以使用呢?答案肯定是可以的。

prototype 模式

1
2
3
4
5
6
7
function Cat(name,color){
    this.name = name;
    this.color = color;
}
 
Cat.prototype.type = '猫科动物';
cat.prototype.eat = function(){console.log('吃老鼠');}

这时候,

1
2
var cat1 = new Cat('大毛','黄色');
var cat2 = new Cat('二毛','黑色');

此时,再多的实例对象,其 type 属性和 eat 方法都指向的是同一份,也即相同的内存地址。

1
console.log(cat1.eat === cat2.eat); //true

prototype 模式的验证方法

为了配合 prototype 模式, javascript 定义了一些辅助方法,帮助我们更方便的使用它。

1
isPrototypeOf()

这个方法用来判断,某个 prototype 对象和某个实例之间的关系。

1
console.log(Cat.prototype.isPrototypeOf(cat1)); //true

hasOwnProperty()
次方法用来判断某个属性到底是prototype 对象的属性还是类定义的(本地属性)。

1
2
console.log(cat1.hasOwnProperty('name')); true
console.log(cat1.hasOwnProperty('type')); false

in 运算符

此运算符用来判断某个属性是不是存在于某个实例中,即某个实例是否包含某个属性,不管是本地还是继承自 prototype

1
2
3
console.log("name" in cat1); // true
console.log('type' in cat1); // true
console.log('typo' in cat1); // false

in 运算符还可以用来遍历对象的属性。

1
2
3
for(var key in cat1){
    console.log('cat1[' + key ' ]=' + cat1[key]);
}

当然在遍历的时候可以使用 hasOwnProperty() 来限制输出的属性。

vi  /usr/local/nginx/conf/nginx.conf

开头有一个

#user  nobody;

把井号删掉,nobody改为  用户名 [空格] 用户组,例如

user nginx  web;

即以web组的nginx用户来运行nginx.

修改完以后

/usr/local/nginx/sbin/nginx -s reload

重启nginx

注:具体重启的命令在具体的环境下有区别。所有的路径也一样,请注意。

来源:http://my.oschina.net/cxz001/blog/97206

1
2
3
4
5
6
7
8
9
10
11
12
13
var getCursorPositionOfPage = function(e){
    var x, y;
 
    e = e || window.event;
 
    x = e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
    y = e.pageY || (e.clientY + (document.documentElement.scrollTop  || document.body.scrollTop));
 
    return {
        'x':x,
        'y':y
    };
};

使用方式:

1
document.querySelector("body").addEventListener("click",getCursorPositionOfPage ,false);

1
document.getElementsByTagName("body")[0].onmousemove = getCursorPositionOfPage ;

经过简单的测试,各个浏览器的差异如下:

1
2
3
4
5
6
7
8
9
 pageY       chrome/IE10/IE9/firefox29          随滚动条滚动而变化        页面高度   X 同理      IE8/IE7 未定义
 
 clientY     chrome/IE10/IE9/IE8/IE7/firefox29  不随滚动条滚动而产生变化   窗口高度   X 同理
 
 
 
 document.documentElement   chrome/IE10/IE9/IE8/IE7/firefox29     html
 
 document.body              chrome/IE10/IE9/IE8/IE7/firefox29     body
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 滚动条未滚动
 document.documentElement.scrollTop    chrome            0
 
 document.body.scrollTop               chrome            0
 
// 滚动条滚动
 document.documentElement.scrollTop    chrome            0
 
 document.body.scrollTop               chrome            100
 
 
// 滚动条未滚动
 document.documentElement.scrollTop    IE10/IE9/IE8/IE7/firefox29            0
 
 document.body.scrollTop               IE10/IE9/IE8/IE7/firefox29            0
 
// 滚动条滚动
 document.documentElement.scrollTop    IE10/IE9/IE8/IE7/firefox29            100
 
 document.body.scrollTop               IE10/IE9/IE8/IE7/firefox29            0

上面的 0 表示就是 0 ,100 表示有值。