最近在 Qinling 项目中实现对 function 运行时做资源限制,主要是 cpu、内存和磁盘,后续还会考虑 package 大小、文件句柄、系统调用等资源限制。限制资源使用的原因很简单,因为底层是容器实现,function 都是跑在容器里,如果不做资源限制,任由用户自己在 function 里分配资源,那么不同用户的函数势必会相互影响,更严重的情况是恶意用户会利用一些手段突破容器的限制,威胁 hypervisor,进而威胁整个云环境。
继续阅读 »
从一个视频里接触到 JavaScript 的get和set
一般来说,我们是怎么给我们类的属性定义get和set方法的呢
```javascript
var Person = function (age) {
this.age = age;
};
Person.prototype = {
getAge: function () {
return this.age;
},
setAge: function (age) {
this.age = age;
}
};
var p1 = new Person(19);
var p2 = new Person(23);
```
继续阅读 »
事件处理
React中的事件处理方式与HTML方式类似,都是通过为标签添加属性来声明事件处理函数。如下所示:
```javascript
var LikeButton = React.createClass({
getInitialState: function(){
return {like: true};
},
handleClick: function(){
this.setState({like: !this.state.like});
},
render: function(){
return (
继续阅读 »
在涉及到有回调函数的情况下,回调函数可能是同步执行的,也可能是异步执行的。
例如:
```js
function callback() {
console.log('callback')
}
function syncFn(fn) {
fn()
}
function asyncFn(fn) {
setImmediate(fn)
}
```
当执行:
js
syncFn(callback)
console.log('hello world')
输出为:
js
// => callback
// => hello world
当执行:
js
asyncFn(callback)
console.log(
继续阅读 »
如何评估一个回归模型
loss function
首先定义loss function,即预测错误带来的损失,通常使用y-yhat的绝对值或者平方。但不绝对,比如在预测放假时如果估值过高,则可能完全卖不出去,带来的损失更大,因此可以定义loss function使估值过高带来的loss比估值过低带来的loss更大。
继续阅读 »
benchmark意为基准测试,常用来比较程序的性能。例如,比较不同方式拼接字符串的效率:
js
var a = 'hello' + 'world'
var b = ['hello', 'world'].join('')
常用方法有:
运行相同的次数,用时少的效率高
运行相同的时间,运行次数多的效率高
1. 运行相同的次数
例如:
```js
function f1() {
return 'hello' + 'world'
}
function f2() {
return ['hello', 'world'].join('')
}
function benchmark(name, fn) {
var ti
继续阅读 »
原型链继承
让构造函数的原型对象等于另一个类型的实例,利用原型让一个引用类型继承另一个引用类型的属性和方法
```
function SuperType()
{
this.property=true;
}
SuperType.prototype.getSuperValue=function(){
return this.property;
};
function SubType()
{
this.subProperty=false;
}
//继承SuperType
SubType.prototype=new SuperType();
SubType.prototype.getSubValue=f
继续阅读 »
装饰者模式:给对象动态地增加职责。跟继承相比,装饰者是一种更轻便灵活的做法,是一种“即用即付”的方式。
js的装饰者
假设我们在编写一个飞机大战游戏,这个飞机可以升级,发射导弹,发射原子弹
var plane = {
fire: function() {
console.log('发射普通子弹');
}
};
var missileDecorator = function() {
console.log('发射导弹');
};
var atomDecorator = function() {
console.log('发射原子弹');
};
var fire1 = plane.f
继续阅读 »
In R, function may not be as special as it is in other programming languages; it is regarded as one of the many types and can be passed as an argument to some other function. The way we deal with other objects such list and data.frame definitely applies to function. Here is a simple example in which we define two funct
继续阅读 »
阅读前,希望你了解javascript的原型链
P.js
项目地址
基础用法:
var Animal = P(function(animal){
animal.init = function(name){
this.name = name;
};
animal.move = function(meters){
console.log(this.name + " moved " + meters + " m.");
}
});
继续阅读 »