hexo同步托管到gitcafe和github

update :国内page不稳定,已放弃!!!

update : coding.net现在已替换为腾讯云托管 操作应该类似, page若有问题可重建项目生成

update : gitcafe已关闭,现在已替换为coding.net 操作类似

Hexo是node.js生成的静态博客,托管到gitcafe或者github的page服务就可以变成自己免费的博客,当然最重要的是写博客更方便了。
有了github,为什么还要用gitcafe。因为国内的百度抓取太不给力,只好用gitcafe来配合。。。

本文主要说一下gitcafe的配置

coding.net gitcafe

注册

coding.net注册邀请

创建page项目

怎么做?直接上 官方wiki

Read More

mac vim高亮及缩进设置

看着默认的vim显示效果不爽,查了下设置,搞起。

将vim的环境文件copy到自己常用用户的主目录下

cp /usr/share/vim/vimrc     ~/.vimrc

修改.vimrc文件归读写属性

sudo  chmod o+w  .vimrc

语法高亮

用vim等打开.vimrc在文件最后加上

syntax on

Read More

解决mysql不可用limit子查询

当你在mysql子查询中使用了limit,那么恭喜你,你会看到

ERROR 1235 (42000): This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’

limit在mysql中本来的效率就不高,mysql于是也禁止在子查询中使用limit,可是如果非要用呢

比方说需求是:

  • 一等奖5名
  • 二等奖15名
  • 获了一等奖的不能再获二等奖

直觉告诉我们,下边的sql是可以的。

Read More

大学-公司数据爬取

今天需要搞大学数据库,目标是新浪高考网。
仔细分析其页面的数据获取是使用Jsonp的js方式。于是在控制台能使用js爬取了大学数据源(1378条)

这里要记录的是爬取中数组合并的问题

Read More

搭建你自己的Hexo博客

Hexo基于node.js,可用于生成静态博客,结合github和Mac,可以专注创作了。
深入学习见文末引用。

hexo安装

brew install node
sudo npm install hexo-cli -g  #全局安装

创建博客

Hexo使用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
hexo init <folder>  #执行init命令初始化hexo到你指定的目录
hexo new [layout] <title> #创建文章
hexo new page <title> #生成新页面
hexo generate #自动根据当前目录下文件,生成静态网页
-d #deploy after
-w #查看文件变化
hexo publish [layout] <filename> #发布草稿
hexo server #运行本地服务
-p #端口
-s #只生成静态文件
-l #生成log
--draft 连草稿也生成预览
hexo deploy
-g #generate before
hexo render <file1> [file2] ...
-o #output destination
hexo migrate <type> #Migrates content from other blog systems.
hexo clean #Cleans the cache file (db.json) and generated files (public).
hexo list <type> #Lists all routes.

Read More

编写可维护javascript

for-in:对象属性遍历

  • 循环不仅遍历对象实例属性,还遍历从原型继承来的属性;若只想遍历该对象属性

var prop,obj={a:1.b:2,c:3};
for (prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        //遍历只属于该对象的属性
    }
}

in:判断属性在对象中是否存在

var obj={
    cnt:0,
    related:null
};
if("cnt" in obj){
    //do some code
}

instanceof:判断一个变量是否某个js 对象( 非dom对象)的实例

typeof:判断运算数的类型
  • 返回number,boolean,string,function,object,undefined

处理错误

  • 自定义错误

function MyError(msg){
    this.msg=msg;
}
MyError.prototype = new Error();
  • try-catch-finally

基于对象继承:不破坏源对象

var person={
  age:11,
  name:'virgil'
};
var myPerson=Object.create(person);
myPerson.age=12;
console.log(myPerson.age,person.age);//12 11

基于类型继承

function Person(name){
    this.name;
}

function Author(name){
    Person.call(this,name); //继承构造器
}

Author.prototype = new Person(); //原型继承

禁止修改

  • preventExtension #防止扩展
  • seal #密封
  • freeze #冻结

引用

  • Array非固定长度,可以动态增删,因此数组是引用类型

    var arr=[1,2,3];
    var arrRef=arr;
    arr.push(4);
    console.log(arrRef);

作用域链

  • 全局作用域中,该链中有且只有一个对象,即全局对象
  • 函数中,有两个对象,先会被访问到的是调用对象,然后是全局对象

《JavaScript核心概念及实践》

如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : https://newbmiao.github.io/2015/03/28/maintainable-javascript-note.html