小编Wyc*_*yck的帖子

d3将文字添加到圆圈

我想在圆圈中添加一些文字.我一直在关注http://mbostock.github.com/d3/tutorial/circle.html上的示例, 但无法获得正确的输出.

代码段是:

var data;
var code;

d3.json("/json/trace.json", function(json) {
  data = json;
  console.log(data);
  // get code for visualization
  code = data["code"];
  alert(code);
  var mainSVG = d3
    .select("#viz")
    .append("svg")
    .attr("width", 900)
    .attr("height", 900);
  mainSVG
    .append("circle")
    .style("stroke", "gray")
    .style("fill", "white")
    .attr("r", 100)
    .attr("cx", 300)
    .attr("cy", 300);
  circle = mainSVG.selectAll("circle").data([code]);
});
Run Code Online (Sandbox Code Playgroud)

有任何建议如何让这项工作?非常感谢!

javascript svg d3.js

57
推荐指数
2
解决办法
9万
查看次数

过滤包含在EF Core中

我正在尝试过滤初始查询.我已经嵌套了包含模型的叶子.我正在尝试根据其中一个包含的属性进行过滤.例如:

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
            .ThenInclude(post => post.Author)
        .ToList();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能说呢.Where(w => w.post.Author == "me")

entity-framework-core

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

HttpClient与HttpWebRequest相比,可提供更好的性能和安全性以及更少的连接

我做了一些简单的测试比较和我发现的一些信息

单个HttpClient可以由多个请求共享,如果共享并且请求到达同一目的地,则多个请求可以重用WebRequest需要为每个请求重新创建连接的连接.

我还查阅了一些关于使用HttpClient示例的其他方法的文档

以下文章总结了高速NTLM身份验证的连接共享

HttpWebRequest.UnsafeAuthenticatedConnectionSharing  

我尝试过的可能实现如下所示

一个)

private WebRequestHandler GetWebRequestHandler()
{
    CredentialCache credentialCache = new CredentialCache();
    credentialCache.Add(ResourceUriCanBeAnyUri, "NTLM", CredentialCache.DefaultNetworkCredentials);
    WebRequestHandler handler = new WebRequestHandler
    {
        UnsafeAuthenticatedConnectionSharing = true,
        Credentials = credentialCache
    };

    return handler;
}

using (HttpClient client = new HttpClient(GetWebRequestHandler(), false))
{
}
Run Code Online (Sandbox Code Playgroud)

B)

using (HttpClient client = new HttpClient)
{
}
Run Code Online (Sandbox Code Playgroud)

C)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("some uri string")
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助,让我了解应该采取哪种方法,以实现最大性能,最小化连接并确保安全性不受影响.

c# httpclient httpwebrequest asp.net-web-api

25
推荐指数
2
解决办法
3万
查看次数

如何让 docker 和 npm 工作区正常工作,而无需到处复制根主节点模块

我有一个像这样的项目结构:

+-- node_modules
+-- package-lock.json
+-- package.json
`-- workspace-a
   `-- package.json <---includes common as a dependency
`-- common
   `-- package.json
Run Code Online (Sandbox Code Playgroud)

我有Dockerfile如下:

FROM node:alpine as builder

# from monorepo root
WORKDIR /app

COPY ./package*.json ./

COPY ./common/package*.json ./common/

COPY ./workspace-a/package*.json ./workspace-a/

RUN npm config set optional

RUN npm i

# build common library
WORKDIR /app/common

COPY ./common ./

RUN npm run build

# build workspace-a using built common library as dependency
WORKDIR /app/workspace-a

COPY ./auth ./

CMD ["npm","run", "build"] …
Run Code Online (Sandbox Code Playgroud)

node.js npm docker

18
推荐指数
1
解决办法
4670
查看次数

试图优化模糊匹配

我有2,500,000个产品名称,我想尝试将它们组合在一起,即找到名称相似的产品.例如,我可以有三种产品:

  • 亨氏焗豆400克;
  • Hz Bkd Beans 400g;
  • 亨氏豆400克.

这实际上是相同的产品,可以合并在一起.

我的计划是使用Jaro Winkler的距离算法来实现匹配.该过程如下:

  • 列出内存中所有产品名称的大清单;
  • 选择列表中的第一个产品;
  • 将它与列表中的每个产品进行比较并计算出"Jaro分数";
  • 报告任何具有高匹配(例如0.95f或更高)的产品;
  • 转到下一个产品.

所以这有一些优化,因为它只对每个产品进行单向匹配,节省了一半的处理时间.

我把它编码并测试了它.它运作完美,并发现了数十个匹配的调查.

将1个产品与2,500,000个其他产品进行比较需要大约20秒钟,并计算出"Jaro评分".假设我的计算是正确的,这意味着它将花费一年的最佳时间来完成处理.

显然这不实用.

我让同事们查看代码,他们设法将Jaro分数计算部分的速度提高了20%.他们使这个过程成为多线程,并使其更快一点.我们还删除了一些存储的信息,将其简化为产品名称和唯一标识符列表; 这似乎对处理时间没有任何影响.

通过这些改进,我们仍然认为这需要几个月的时间来处理,我们需要花费数小时(或最多几天).

我不想详细介绍,因为我认为这不是完全相关的,但我将产品详细信息加载到列表中:

private class Product
{
    public int MemberId;
    public string MemberName;
    public int ProductId;
    public string ProductCode;
    public string ProductName;
}
private class ProductList : List<Product> { }
private readonly ProductList _pl = new ProductList();
Run Code Online (Sandbox Code Playgroud)

然后我使用以下处理每个产品:

{Outer loop...
var match = _pl[matchCount];

for (int count = 1; count < _pl.Count; count++)
{
    var search = _pl[count];
    //Don't match …
Run Code Online (Sandbox Code Playgroud)

c# algorithm grouping duplicates fuzzy-logic

15
推荐指数
1
解决办法
1117
查看次数

为什么伪随机数生成器不太可能连续生成 54 个大数?

考虑一个以概率p发生的事件。该程序检查在事件发生之前进行了多少次失败的试验,并保留总数的直方图。例如:如果p是 0.5,那么这就像问硬币在出现正面之前连续出现了多少次反面?使用较小的p值,在我们获得成功之前,我们预计会有很多失败。

正在测试的实现本质上是: while (!(rand.NextDouble() < p)) count++;

这是count的结果直方图。

在此处输入图片说明

立即明显的是 x=54 处的不规则性。出于某种原因,连续生成一系列大于或等于p的恰好 54 个随机数的可能性大约是其应有的一半

我在这个测试中检查的实际p是 1/32。(这并不重要,只要它小到足以获得一些可测量的 54 个作为结果。)而且我正在计算 10000000 次总成功。(似乎也无关紧要。)我使用的随机种子也无关紧要。

显然,这是Random.NextDouble.NET 中函数使用的伪随机数生成器的一个怪癖。但我想知道为什么这个原本统一的数据在如此奇怪的特定和一致的地方有如此惊人的单一峰值?这个特殊的伪随机数生成器是什么,它可以连续生成 54 个大数,然后是一个小数,其可能性是任何其他序列长度的一半?

我原以为随着它的退化会出现更多的非均匀异常,而不仅仅是这个尖峰。


这是生成此数据集的代码:

using System;

namespace RandomTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rand = new Random(1);
            int numTrials = 10000000;
            int[] hist = new int[512];
            double p = 1.0 / …
Run Code Online (Sandbox Code Playgroud)

.net c# random

10
推荐指数
1
解决办法
263
查看次数

MongoDB Compass永远加载

我的MongoDB Compass无法启动.它在一个小时前工作,但现在它只是永远显示这个屏幕.

在此输入图像描述

我试过重启.甚至卸载并重新安装Compass.但是每次我启动它时,它只显示加载屏幕并且永远不会继续.如果我转到Connect> Connect to ...,它只会打开另一个窗口,它会执行相同的操作.

版本1.10.9

Windows 10 x64

如何让这个程序正确启动?我应该如何调查才能弄清楚这一点?

mongodb

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

从动态 ExpandoObject 生成 JSON 字符串

我正在使用 C# 并尝试从动态对象生成 JSON 字符串。

dynamic reply = new System.Dynamic.ExpandoObject();
reply.name = "John";
reply.wins = 42;
string json = System.Web.Helpers.Json.Encode(reply);
System.Console.WriteLine(json);
Run Code Online (Sandbox Code Playgroud)

(注意,上面需要对 System.Web.Helpers 程序集的引用。)

我希望这能输出字符串:

{"name":"John","wins":42}
Run Code Online (Sandbox Code Playgroud)

但它实际上输出:

[{"Key":"name","Value":"John"},{"Key":"wins","Value":42}]
Run Code Online (Sandbox Code Playgroud)

我需要更改什么才能获得我希望的输出?

c# json expandoobject

9
推荐指数
1
解决办法
5190
查看次数

棋盘游戏:找到带有限制的红点的最大绿点

场景:

  • 在大小为MxN的棋盘上,有红色和绿色的棋子。

  • 板上的每个正方形可以包含任意数量的任何颜色的块。(我们可以在同一个正方形中有5个-3个绿色和2个红色,例如,绿色,红色或红色,或任何数字)

  • 我正在寻找板上尽可能多的绿色碎片的轴对齐矩形。

  • 但是,矩形所包含的红色块的数量不得超过给定数量。

  • 矩形的一个角必须为(0,0)。

例:

电路板尺寸为6x4,红色部分标记为“ x”,绿色部分标记为“ o”。

      +-+-+-+-+-+-+
    3 | | | | o | x | o |
      +-+-+-+-+-+-+
    2 | o | | x | | | o |
      +-+-+-+-+-+-+
    1 | o | | o | | o | x |
      +-+-+-+-+-+-+
    0 | | o | | x | | x |
      +-+-+-+-+-+-+
       0 1 2 3 4 5
  • 如果我们允许2个红色块,那么(4,2)是一个最佳解决方案,因为(0,0)和(4,2)之间的区域包含5个绿色块和2个红色块。最多有2个红色块的点最多包含5个绿色块。(3,3)也是一个最佳解决方案。

  • 如果我们允许3个红色部分,那么(4,3)是唯一的最佳解决方案,其中包含6个绿色部分。

我得到:

  • 板子尺寸
  • 所有绿色和红色部分的坐标,
  • 允许的红色块数(“ maxRed”)

目标: 对于任何给定的“ maxRed”,该类都应该能够计算坐标(x,y),以使(0,0)和(x,y)之间的轴对齐矩形最多包含“ maxRed”个红色片断,并且绿色块的数量最大。

我的问题:

通过遍历具有最大绿色点和给定最大红色点的所有可能矩阵(以找到最大的三角形)来解决此问题显然效率不高,我正在尝试找到一种无需使用蛮力就能找到该矩阵的方法。 …

python optimization performance numpy

9
推荐指数
1
解决办法
467
查看次数

如何列出本地存储的清单

当我这样做时,docker manifest create ...这个清单存储在本地,并且在我这样做之前它不会被推送到注册表docker manifest push ...,但我不确定在推送之前它同时位于哪里。

我知道我可以删除本地存储的清单,docker manifest rm ...但我的目标是清理我创建的所有被遗忘的清单,那么如何列出所有本地存储的清单?

我预料到了docker manifest ls,但不存在这样的命令。

docker

8
推荐指数
1
解决办法
2638
查看次数