2015极客公园创新大会

大赞,大赞,大赞…上一次这么激动人心就是2014年8月17日的中国街球制霸赛了,而昨天和今天的极客公园创新大会有过之而无不及。看到那么多的大咖分享自己的看法,看到那么多新奇古怪的东西出现在我们身边,只能感叹一句,科技真的来了,不再是那么遥远,很幸运我们就处在这样一个时代。

从大会第一场百度IDL余凯分享的百度大脑所思考的人机关系,看到百度的无人智能自行车行驶在会场内,暗暗佩服百度的技术研发能力。接着是格灵深瞳CEO和出门问问CEO所带来的人工智能方面的分享也颇为精彩,尤其是看到出门问问基于moto 360订制的智能语音系统,真的是很赞,从拨打电话,到导航,再到打车,你都可以对着moto 360说一句你的需求,他就会快速帮你服务,语音识别已经接入了我们的现实生活。

如果说第一天的主题是个热场,第二天的大会则是达到高潮。从美团王兴带来的对资源革命的思考到uc俞永福带来的对高德地图的规划解读,再到小米林斌带来的新产品,不得不说小米真是走到哪营销到哪,不过小米这次带来的智能家庭套装还是很赞的,就像小米说的那样,他们的愿景是让每个人享受科技的乐趣,希望他们能在这条道路上越做越好,能真的让每一个普通家庭都能享受科技的乐趣和便捷。如果说小米是张扬的,那么一加可真就是太低调了,或许由于一加主打欧美市场导致一加在国内知名度不够高,听了刘作虎的演讲只能说,作为一个产品狂,对待产品的态度是真心好,一加能在欧美走出自己的路来和刘作虎给公司带来的这种理念不无关系。听林斌和刘作虎的演讲,立刻感受到两个公司的文化,看来公司创始人真的是决定公司文化的一个很重要的因素。

JavaScript中的call,apply和bind

之前对JavaScript中函数的call,apply和bind方法认识的一直不够,不甚理解,看了一下《JavaScript高级程序设计》里的解读,讲的很清楚,介绍如下:

call和apply

每个函数都包含两个非继承而来的方法:apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。首先,apply()方法接收两个参数:一个是在其中运行函数的作用域(其实就是指定函数的执行环境或者说指定函数的上下文对象),另一个是参数数组。其中,第二个参数可以是Array的实例,也可以是arguments对象(也就是说,第二个参数是是一个数组)。例如:

C++知识点总结

malloc与new的区别:

1.new是C++中的操作符,malloc是C中的一个函数
2.new不止是分配内存,而且会调用类的构造函数,同时delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数
3.内存泄露对于malloc或new都可以检查出来的,区别在于new可以指明是哪个文件的哪一行,而malloc没有这些信息
4.new和malloc效率比较:malloc的效率高一点,new可以认为是malloc加构造函数的执行,delete是free加析构函数的执行
5.new出来的指针是直接带类型信息的,malloc返回的都是void指针
6.new/delete是运算符,malloc/free是函数。运算符只能重载不能自定义;函数的名字随便起,只要是个标识符就行了,但运算符不行,比如,你无法仿照其它语言的特点,自己定义一个乘方运算符“**”,任何函数都可以重载或者覆盖,但通常你不能改变运算符作用于内置类型的行为,比如,你不能通过重载“operator+”,让3+2产生出6来
7.malloc与free是C/C++语言的标准库函数,new/delete是C++的运算符,它们都可用于申请动态内存和释放内存
8.为什么C++中要存在new/delete,只用malloc/free不就行了吗?

node.js后台运行

node.js一般是当成一条用户命令去执行,当断开链接,应用也就停了。如何让node应用当成服务,在后台执行呢?由于最近要实现一个定时发送邮件的功能,所以查了一下,让node在后台运行的方法。

nohup

最简单的办法就是使用nohup命令

nohup node app.js &

linux下一般想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行。比如我们要运行mysql在后台:

/usr/local/mysql/bin/mysqld_safe --user=mysql &

node.js定时事务node-schedule

最近在做一个需要定时执行的任务,通过查资料,看到了node-schedule,感觉用起来简单方便,欢迎共同探讨。

github地址:https://github.com/mattpat/node-schedule

安装

npm install node-schedule

示例

1.确定时间,例如:2014年11月20日,17:30

var schedule = require('node-schedule');
var date = new Date(2014,11,20,17,30,0);

var j = schedule.scheduleJob(date, function() {
    console.log('welcome to my house!');
});

//取消预设计划
j.cancel();