小编Zac*_*chB的帖子

为什么域不在D3中使用d3.max(数据)?

我是D3的新手并且正在玩散点图.我无法让d3.max(数据)在设置域时正常工作!

我有以下设置随机数据集:

var data = [];
      for (i=0; i < 40; i++){
            data.push({"x": i/40, "y": i/8, "a": Math.floor(Math.random() * 3), "x2": Math.random()});
        }
Run Code Online (Sandbox Code Playgroud)

然后以下设置我的坐标:

 var x = d3.scale.linear().domain([0, 1]).range([0 + margin, w-margin]),
            y = d3.scale.linear().domain([0, d3.max(data)]).range([0 + margin, h-margin]),
            c = d3.scale.linear().domain([0, 3]).range(["hsl(100,50%,50%)", "rgb(350, 50%, 50%)"]).interpolate(d3.interpolateHsl);
Run Code Online (Sandbox Code Playgroud)

这将所有40个点放在一条水平线上.如果我用'5'替换d3.max(数据)那么它是一个对角线(尽管从左上角到右下角,我仍然在努力翻转y坐标).为什么d3.max(数据)没有按预期工作?

d3.js

6
推荐指数
1
解决办法
9825
查看次数

D3:精炼序数规模以返回颜色组?

我在D3.js中设置了如下的序数比例,到目前为止效果很好:

var color = d3.scale.ordinal().range([ 'blue', 'red', 'green' ]); 
color.domain();  
console.log(color(0)); // returns 'blue'
Run Code Online (Sandbox Code Playgroud)

但是,我真正想做的是能够将两个数字传递到刻度中,并让它返回蓝色,红色或绿色的特定子阴影 - 主要阴影取决于第一个数字,子阴影取决于第二个数字.

也许我可以用某种方式将d3.scale.ordinal()d3.interpolateRgb()结合起来做到这一点?我不确定interpolateRgb是否是正确的选择,因为颜色是一致的,取决于输入数字.

所以这就是我想要实现的目标:

color(0, 256); // return a shade of blue
color(0, 257); // return a second shade of blue
color(0, 256); // return the first shade of blue again
Run Code Online (Sandbox Code Playgroud)

在D3中实现这一目标的任何想法?谢谢您的帮助.

javascript d3.js

6
推荐指数
1
解决办法
2853
查看次数

*v8 :: String :: Utf8Value(args [0] - > ToString())不返回node.js addon参数的字符串

我发现*v8 :: String :: Utf8Value(args [0] - > ToString())在节点0.8.2 32位上返回正确的字符串,并且不在节点0.8.8上返回正确的字符串64-位.

有谁知道为什么?

我的node.js插件看起来像这样:

#define BUILDING_NODE_EXTENSION
#include <node.h>

#define MAX_OUTPUT_BUF  80
extern "C" char *do_sqlsig(char *in);

using namespace v8;

Handle<Value> Sqlsig(const Arguments& args) {
 HandleScope scope;
 char *c_arg, *ret;

 if (args.Length() < 1) {
   ThrowException(Exception::TypeError(String::New("Wrong number of arguments")));
   return scope.Close(Undefined());
 }

 c_arg = *v8::String::Utf8Value(args[0]->ToString());

 ret = c_arg; //do_sqlsig(c_arg);

 return scope.Close(String::New(ret));
}

void Init(Handle<Object> exports) {
  exports->Set(String::NewSymbol("sqlsig"),
      FunctionTemplate::New(Sqlsig)->GetFunction());
}

NODE_MODULE(sqlsig, Init)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在为C函数do_sqlsig编写一个包装器.我非常了解C并且对C++知之甚少

c c++ v8 node.js node.js-addon

6
推荐指数
1
解决办法
6541
查看次数

Mongoose:在要保存的文档中不存在时,在必填字段中设置默认值

我试图在空字段中设置一个默认值,以便将文档保存在MongoDB中

在我的例子中,这是mongoose模式

var Distribution = new Schema({
    temporalCoverage: {
        startDate: {type: Date, default: Date.now},
        endDate: {type: Date, default: Date.now}
    },
    distributionText: String
});
Run Code Online (Sandbox Code Playgroud)

这是要保存的文件:

"distribution": {
    "temporalCoverage": {
      "endDate": "",
      "startDate": ""
    },
    "distributionText": "test"
  }
Run Code Online (Sandbox Code Playgroud)

在本文档中,空字段为endDate和startDate.该文档以空值保存在mongoDB中.

"distribution": {
    "temporalCoverage": {
      "endDate": null,
      "startDate": null
    },
    "distributionText": "test"
  }
Run Code Online (Sandbox Code Playgroud)

我想保存默认值,而不是null

如果在模式中放置所需的字段,temporalCoverage : { startDate : { type: Date, required: true, default: Date.now }, endDate : { type: Date, required: true, default: Date.now } }我会得到错误验证,并且文档没有保存.

mongoose mongodb node.js

6
推荐指数
1
解决办法
7669
查看次数

缓存控制的用例:min-fresh

有效的 Cache-Control 指令是min-fresh=<seconds>,这意味着“客户端希望响应至少在指定的秒数内仍然是新鲜的”(ref)。

我无法在网上想到或找到用例或实际实现。似乎需要服务器进行时间旅行或锁定资源以防止<seconds>. 有没有人有示例用例或实现?

caching http http-headers

6
推荐指数
0
解决办法
381
查看次数

[Vue warn]: Error in render: “TypeError: Cannot read property ‘name’ of undefined”

I get the error

TypeError: Cannot read property ‘name’ of undefined”

if I go to deep in the object.

Timeline.vue

<template>
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="card card-default">
                <div class="card-header">Timeline</div>

                <div class="card-body">
                    <post v-for="post in posts" :key="post.id"></post>
                </div>
            </div>
        </div>
    </div>
</div>
</template>

<script>
import Post from './Post.vue'

export default {
    data () {
        return {
            posts: []
        }
    },
    components: {
        Post
    },
    mounted() {
        this.$http.get('/posts').then((response) => {
            console.log(response.body)
            this.posts =response.body
        })
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

post.vue …

vue.js

6
推荐指数
1
解决办法
1万
查看次数

如何为使用内存使用包运行的 Nodejs 设置 pass max-old-space-size 内存限制

我正在使用https://www.npmjs.com/package/memory-usage通过在 MACOS 终端中运行“memory-usage app.js”来查看我的 Node 应用程序如何使用内存。然而,经过一些测试,它总是在 1.4GB 时崩溃。

在普通的nodejs命令中,要将内存限制设置得更高,我可以使用“node --max-old-space-size=8192 app.js”。但是,运行“memory-usage --max-old-space-size=8192 app.js”将不起作用。

我的 Mac 有以下 RAM 详细信息:

组 0/DIMM0:

大小:4 GB 类型:DDR3 速度:1867 MHz

组 1/DIMM0:

大小:4 GB 类型:DDR3 速度:1867 MHz

我的 Nodejs 应用程序可以使用的最大大小是多少?如何通过内存使用来设置它?

谢谢。

javascript node.js

6
推荐指数
1
解决办法
2万
查看次数

是否可以在带有动态域的序数范围内使用rangeBand()?

我的数据看起来像这样......

var data = [{name:'a', value : 97},
          {name:'b', value : 24},
          {name:'c', value : 10}];
Run Code Online (Sandbox Code Playgroud)

我有一个像这样创建的序数量表......

var y = d3.scale.ordinal().rangeBands([0, 30 * data.length]);
Run Code Online (Sandbox Code Playgroud)

我用它来创建这样的基本图...

    chart.selectAll("rect")
        .data(data)
        .enter().append("svg:rect")
        .attr("y", function(d,i){ return y(d.name);})
        .attr("width", function(d,i){ return x(d.value);})
        .attr("height", y.rangeBand());
Run Code Online (Sandbox Code Playgroud)

根据d3文档(此处),您无需为序数规范指定域,并且在尝试使用它时将填充它.在我的情况下,但是y(d.name)总是返回0并且y.rangeBand()引发异常,即使我看到域数组已经填充在scale对象中.

所以,我通过预先定义我的域来解决这个问题...

.domain(data.map(function (d){ return d.name;}))
Run Code Online (Sandbox Code Playgroud)

但我希望能够动态添加到此域,如果我这样做,它不会超出创建时设置的原始值.这甚至可能吗?

我对d3很新,所以我可能会遗漏一些重要的东西.

d3.js

5
推荐指数
1
解决办法
1万
查看次数

使用 nan 在插件中接收和返回 Float32Array

我正在尝试使用nan来计算附加组件中浮点数组上的某些内容,然后将其作为Float32Array.

但是,虽然 args 具有IsNumber()NumberValue()功能,但它只有一个IsFloat32Array()功能而没有Float32Array()

我试图查看那些:1 , 2教程,但没有找到合适的示例。

NAN_METHOD(Calc) {
  NanScope();

  if (args.Length() < 2) {
    NanThrowTypeError("Wrong number of arguments");
    NanReturnUndefined();
  }

  if (!args[0]->IsNumber() || !args[1]->IsFloat32Array()) {
    NanThrowTypeError("Wrong arguments");
    NanReturnUndefined();
  }
  /* a vector of floats ? */  args[0]-> ???;
  double arg1 = args[1]->NumberValue();
  // some calculation on the vector

  NanReturnValue(/* Return as a Float32Array array */);
}
Run Code Online (Sandbox Code Playgroud)

javascript c++ v8 node.js node.js-addon

5
推荐指数
1
解决办法
793
查看次数

一起使用 OIDC 和 SCIM 有意义吗?

我希望我的应用程序能够使用客户 Azure AD 中的外部用户池,而不必在我的应用程序中手动创建每个用户(当他们已在 Azure AD 中拥有这些用户时)。

最初,我认为仅使用 OIDC,因为我可以在第一次登录时在我的应用程序中创建用户。但是,当用户在 Azure AD 中被删除时,OIDC 不允许我在应用程序中注销并停用用户。这是我的申请的一个重要要求。

为了解决这个问题,我想我可以结合 OIDC 和 SCIM:

  1. Azure AD 通过 SCIM 端点向我的应用程序配置用户。停用后,Azure 通过 SCIM 端点通知我的应用程序,我可以删除它们的会话并在我的应用程序中停用它们。
  2. 登录由 OIDC 处理。当我拥有有效的 OIDC 令牌时,我会在应用程序中创建一个会话。这样我就不必在我的应用程序中管理密码或多因素身份验证。

SCIM 和 OIDC 一起使用有意义吗?

scim azure-active-directory openid-connect

5
推荐指数
1
解决办法
2205
查看次数