yeoman入门笔记

目录 Web

yeoman官网http://yeoman.io/

yeoman是一个脚手架工具,用来初始化项目目录结构,便于部署项目
早期的web项目基本目录接口大概是这样子

随着web技术发展,各种前端框架的广泛应用,现在的目录结构大概是这样子

根据不同框架、不同编译环境、不同测试环境,以及发布部署,结构更是千变万化,而这些都是比较耗时间去考虑的,现在有了yeoman,可以自动化生成这些结构,只需选好模板,一条命令几个回车即可搞定
首先要安装node.js,然后再安装yeoman
npm install -g yo
然后执行 yo

使用默认自带的模板[……]

Read more

群晖NAS上的SVN和GIT服务

目录 Web

下午终于把SVN搬到NAS上,然后又把SVN迁移到GIT
群晖的套件有SVN和GIT,直接安装即可
SVN安装完后,磁盘会多出svn文件夹,如果有完整的版本库,直接拷进去然后在群晖管理页面的SVN套件刷新就可以看到,登录用户名什么都照原来的,根本不用设置
如果需要新建版本库,则在SVN套件点新建即可

群晖的GIT套件安装完后,建议新建一个git用户专门来管理GIT目录,然后在GIT套件设置该用户的权限即可
GIT不像SVN可以直接在面板新建库,需要打开SSH然后登录,登录账户必须是administrator群组里的账户,登录后新建目录,然后执行git初始化
git init -[……]

Read more

Javascript数组的every、some、map、filter、forEach

目录 Web
  • every,判断是否所有元素都符合,需要每个都为true才返回true,否则返回false
  • some,判断是否有元素符合,一旦遇到true则停止
  • map,每个元素按function返回结果构成新数组
  • filter,返回所有符合条件的元素构成的新数组
  • forEach,单独执行每个元素,无返回

各函数执行时需要传入function作为参数,每次执行会传入value和index
看个例子就明白了


var fun = function(v, i){
console.log(v,i);
return v %2 ==0;
}

var arr =[......]

Read more

ECMAScript6笔记(1)

目录 Web

《ECMAScript6入门》
http://es6.ruanyifeng.com/

let
声明块级作用域变量
let用在花括号{ }里面
在用let声明之前,变量不可用,会报错,而var声明之前的变量则返回undefined

class
更接近传统OOP的写法

class Cat{
 constructor(){
 this.name = "cat";
 this.color = "black";
 }
 }
 class YellowCat extends Cat{
 constructor(){
 super();
 this.color =[......]

Read more

带上跑鞋去旅行,我在巴厘岛跑了半马

目录 Life

IMG_20150520_230114_1

自从当爹之后,睡眠严重不足,脑子不好使,越来越健忘,一直以为巴厘岛之行回程是5月9日下午抵达香港机场,大连国际马拉松也是9日,想着回深圳后还能跑个半马,于是在5月3日报了大连线上马拉松半程组。

直到出行前一天,也就是5日,才发现是10日回程,不过幸运的是9日是自由活动日,想着还有机会完成,于是乎一场带跑鞋的旅途就开始了!

虽然只有半程21公里,但还是很怕跑不完,因为已经整整15个月没跑步了,2013年底骑车摔了脚踝,没伤到骨,但是伤了韧带,加上滑膜炎,没办法放弃了13年底的珠海半马,放弃了14年初的香港渣打马拉松,养伤3个月后,走路骑车都无大碍,唯独跑步一落脚就疼,跑步有个说法,半月不跑武功减半,我这15个月,不止武功尽失,简直就是挑断脚筋吖,欣慰的是每天骑车上下班,想着跑10公里走10公里,总能在关门前完成吧(半程马拉松关门时间一般为3小时)[……]

Read more

我为什么骑车上班,你为什么不?

目录 Life

111

写在前面的后序:
在柴静的《穹顶之下》出来后,就有想写点东西,呼吁大家注意环保,呼吁少开车,后来跟同事的聊天慢慢发现这很难改变什么,开车的依旧选择开车,住的近的也依然不会骑车,第一步总是难以迈开,不想做的事总会给自己千万个理由

我为什么骑车?

1)酷
2)省钱
3)怕塞车
4)不用等车
5)无须挤公交
[……]

Read more

Capture和Bubble,简明解读addEventListener的第三个参数

目录 Web

Capture

target.addEventListener(type, listener[, useCapture]);

前两个参数很好理解,这里不多说,第三个参数是个布尔值,代表Capture和Bubble
网上解释很多,啰哩啰嗦的,这里用一段代码来解读


<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div style="border:1px solid red" id="aa">aaaa
<div style="border:1px solid yellow" id="bb">bbbb
<div style="border:1px solid blue" id="cc">cccc
<div style="border:1px solid green" id="dd">dddd</div>
</div>
</div>
</div>
<script language="javascript">
var dom = document.getElementsByTagName("div");
for(var i =0; i<dom.length; i++){
dom[i].addEventListener("click",function(evt){
console.log(this.id);
},false);
}
</script>
</body>
</html>

addEventListener第三个参数为false,也是最常用的[……]

Read more

如何开会?

目录 Life

如何开会,是个很泛的话题,开会是沟通的一种,通常来说,开会分2种,1是传达信息,2是决策

会前准备

  • 为什么开会,这是最重要的,没意义的会不开
  • 准备方案,不管技术文档还是演示PPT,这些是写给参与者看的,尽量简单明了
  • 确定时间和场地,包括会议设备的准备(投影仪、电话会议等)
  • 确定和通知参加者(包括发送相关文档),参与者分为【必到】和【可选】,这样不是很紧要的人员可以省下时间忙其它事
  • 会议前的通知,这点很重要,往往就是有人忘了,导致会议开始了人没齐,结果就为了等一两人浪费了一屋子人的时间

会中

  • 明确讨论范围,避免泛泛而谈,时间黑洞是很可怕的
  • 传达信息准确,不可含糊其词,同时做好记录
  • 参与人少一些,尽量不浪费working hours,会后通知人多一些,让未参加的人也能明白会议内容和方案
  • 方案PK,只做决定,不讨论具体问题,细节问题私下讨论

会后

  • 确定方案,邮件共享会议纪要
  • 跟进

[……]

Read more

海南蜜月行,Day5,翻越陵水之巅

目录 Life

IMG_09777

11月14日,Day 5,万宁市 – 凌水县 – 英州镇,93km,累计爬坡2848米

GPS轨迹 http://www.endomondo.com/workouts/113648933/581133

骑行的第四天,想起此时KK和包子正在三亚沙滩喝红酒,起了个早,昨晚问过酒店的老板,说到陵水有很长很陡的上坡,你们骑过不去的,我笑了,老板你吓唬谁呢,陵水的山,顶多就200米,比深圳塘朗山矮多了

9点出发时,昨晚偶遇的那对兄弟车友早已走了,在路边吃了早餐,猪脚饭和粉,完全没胃口啊,想起昨晚所谓的鱼汤,满嘴都是腥味,海南人都是吃鱼长大的,不是吃米饭呀,习惯了呀,而且空气中还有鱼腥味,习惯了呀

今天本来是想走高速到田独,然后为了翻那个好长好陡的山,决定还是走223国道思密达![……]

Read more