unref在nodejs timer中的作用

unref()是nodejs中Timeout对象的一个函数,但是解释的不太容易懂,通过代码示例就容易多了。

保存下面代码成一个js文件,node运行。如果注释掉unref一行代码,will i run?打印出来以后程序才退出。如果使用unref,那么程序打印完last line就直接退出了。

就酱。

const timerObj = setTimeout(() => {
console.log(‘will i run?’);
}, 8000);

// if left alone, this statement will keep the above
// timeout from running, since the timeout will be the only
// thing keeping the program from exiting
//timerObj.unref();

console.log(“last line”)

 

 

Technical reading

https://blog.heroku.com/evolution-of-heroku-cli-2008-2017

值得学习的是解释说明Heroku Cli在不同编程语言之间切换取舍的原因。从Ruby到Go,然后到JavaScript,其实也是一个编程语言流行度的表现。

作者也提到,虽然Go在服务器端表现不错,但是在客户端还不尽如人意,所以选择了JS。

https://cstack.github.io/db_tutorial/

模仿sqlite的简版数据库。如果能搞懂这个,一个计算机本科毕业论文应该是没有问题吧。

https://www.microsoft.com/net/learn/architecture

dotnet云计算架构,微软出品。

https://shimo.im/sheet/FZUPeqFNgecX4Hte

石墨表格的应用场景其实很有意思,家长微信群里面统计孩子的信息买班服,提议者发个消息,然后每个家长复制整个消息,再编辑加上自己孩子信息,发出去让下一个家长复制编辑。

QQ TIM版也有类似的文档协作,石墨这个感觉还不错。

https://www.inc.com/jessica-stillman/google-is-giving-away-its-best-tools-for-managers-.html

Google出品,供manager使用的一些文档应用,主要是用到Google Office的功能。

youtube.com/watch?v=tNulrEbTQf8

新版Youtube 100%使用了Polymer框架,也就是Google敢这么玩吧。

https://tutorialzine.com/2017/08/automating-google-chrome-with-node-js

Headless自动化Google Chrome,使用的https://github.com/GoogleChrome/puppeteer 这就是要逼死第三方的节奏。

https://hackernoon.com/learning-path-for-machine-learning-engineer-a7d5dc9de4a4

如何成为机器学习工程师,现在最火爆的话题。

 

近期技术学习-React,Docker和Angular2

在去年年底,开发组里有点时间,我就组织一起学了JavaScript和AngularJs。主要目的有两个,一是向将来的技术趋势靠拢,我们的项目基本上会从DotNet/WPF转到Web开发,而且很可能就是AngularJs。另外一个就是给大家可以持续学习的方向,免得闲下来。

用Angular做了几个项目后,发现组里有个趋势,就是大家把同一套项目模板反复重用,结果导致第二个目的没有达到,不少人复制粘贴就可以了。于是我又推动大家开始学习Angular2和React,不是想把这两个新框架(库)全面掌握,只是想推动大家继续学习。

除了Angular2和React,最近也在看Docker技术以及学习ES6,很多有意思的东西,感觉自己的能量又在慢慢积攒。尤其是Docker,也是将来一个DevOps的方向,我认为是可以深挖的一个技术。

这个只作为最近技术系列的开篇吧。

最后放一个Angular2学习的结果,大家可以直接Fork:

http://plnkr.co/edit/FPkubu?p=preview

Yosemite, U.S.