小编joh*_*odo的帖子

为什么MongoDB中的索引方向很重要?

引用文档:

创建索引时,与键关联的数字指定索引的方向,因此它应始终为1(升序)或-1(降序).方向对于单个键索引或随机访问检索无关紧要,但如果您对复合索引进行排序或范围查询,则该方法很重要.

但是,我认为没有理由为什么指数的方向应该对复合指数起作用.有人可以提供进一步的解释(或示例)吗?

sorting indexing performance query-optimization mongodb

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

link/href只是参数(以问号开头)有效吗?

这个链接有效吗?

<a href="?lang=en">eng</a>
Run Code Online (Sandbox Code Playgroud)

我知道浏览器会按预期处理它,我知道空链接也可以 - 但是可以只指定参数吗?

我很好奇,因为问号("?")只是大多数HTTP服务器(AFAIK)的惯例,尽管我承认它是一个普遍的.

所以,回顾一下:

  1. 所有浏览器都能正确解释吗?

  2. 在RFC中是这样的吗?

  3. 我可以期待使用它有些麻烦吗?

更新:关于点击的预期操作是重定向到同一页面,但具有不同的GET参数(上例中为"lang = en").

html parameters url get

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

如何使用Keras计算预测不确定性?

我想计算NN模型的确定性/置信度(参见我的深层模型不知道的内容) - 当NN告诉我图像代表"8"时,我想知道它是多么确定.我的模型99%确定它是"8"还是51%它是"8",但也可能是"6"?有些数字是相当暧昧的,我想知道模型只是"翻转硬币"的图像.

我已经找到了一些关于这个的理论着作,但是我把它放在代码中有困难.如果我理解正确的话,我应该多次评估测试图像,同时"消灭"不同的神经元(使用辍学)然后......?

在MNIST数据集上工作,我正在运行以下模型:

from keras.models import Sequential
from keras.layers import Dense, Activation, Conv2D, Flatten, Dropout

model = Sequential()
model.add(Conv2D(128, kernel_size=(7, 7),
                 activation='relu',
                 input_shape=(28, 28, 1,)))
model.add(Dropout(0.20))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Dropout(0.20))
model.add(Flatten())
model.add(Dense(units=64, activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(units=10, activation='softmax'))
model.summary()
model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])
model.fit(train_data, train_labels,  batch_size=100, epochs=30, validation_data=(test_data, test_labels,))
Run Code Online (Sandbox Code Playgroud)

问题:我应该如何预测这个模型,以便我也能确定预测?我会很感激一些实际的例子(最好是在Keras,但任何人都会这样做).

编辑:澄清一下,我正在寻找如何使用Yurin Gal概述的方法获得确定性(或解释为什么其他方法会产生更好的结果).

machine-learning uncertainty neural-network deep-learning keras

35
推荐指数
2
解决办法
8597
查看次数

如何用PHP生成火焰图?

我了解了火焰图并发现它们很吸引人 - 但是,我找不到有关如何为我的PHP脚本生成火焰图的有用参考.如何使用PHP收集数据并生成图形?

php profiling graph

33
推荐指数
1
解决办法
2456
查看次数

在Python中解析用户提供的数学公式的安全方法

是否有Python的数学表达式解析器+评估器?

我不是第一个提出这个问题的人,但答案通常指向eval().例如,人们可以这样做:

>>> safe_list = ['math','acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'abs']
>>> safe_dict = dict([ (k, locals().get(k, None)) for k in safe_list ])
>>> s = "2+3"
>>> eval(s, {"__builtins__":None}, safe_dict)
5
Run Code Online (Sandbox Code Playgroud)

但这不安全:

>>> s_badbaduser = """
... (lambda fc=(
...     lambda n: [
...         c for c in 
...             ().__class__.__bases__[0].__subclasses__() 
...             if c.__name__ …
Run Code Online (Sandbox Code Playgroud)

python

24
推荐指数
2
解决办法
4128
查看次数

什么时候调用URL.revokeObjectURL是安全的?

如果我理解正确,则URL.createObjectURL创建表示文件或blob的URL.因为URL只是一个字符串,所以浏览器无法知道您何时完成了URL所代表的资源,因此提供了一个URL.revokeObjectURL函数.

MDN显示了这个例子

var canvas = document.getElementById("canvas");

canvas.toBlob(function(blob) {
  var newImg = document.createElement("img");
  var url = URL.createObjectURL(blob);

  newImg.onload = function() {
    // no longer need to read the blob so it's revoked
    URL.revokeObjectURL(url);
  };

  newImg.src = url;
  document.body.appendChild(newImg);
});
Run Code Online (Sandbox Code Playgroud)

所以有些问题

  1. 在分配后立即更改代码以撤销URL是否安全newImg.src

    var canvas = document.getElementById("canvas");
    
    canvas.toBlob(function(blob) {
      var newImg = document.createElement("img");
      var url = URL.createObjectURL(blob);
    
      newImg.src = url;
      // no longer need to read the blob as it's assigned to newImg.src
      URL.revokeObjectURL(url);
      document.body.appendChild(newImg);
    });
    
    Run Code Online (Sandbox Code Playgroud)

    我猜测答案是"不",因为可能没有任何事情开始 …

javascript html5

21
推荐指数
1
解决办法
9056
查看次数

如何防止触摸事件的默认处理?

我正在尝试做类似嵌入式谷歌地图的工作.我的组件应该忽略单点触摸(允许用户滚动页面)并在自身之外捏(允许用户缩放页面),但应该对双触摸做出反应(允许用户在组件内导航)并且在这种情况下不允许任何默认操作.

如何防止触摸事件的默认处理,但仅限于用户用两个手指与我的组件交互的情况?

我尝试过的:

  1. 我试过捕捉onTouchStart,onTouchMove然后onTouchEnd.事实证明,在FF Android上,在对组件进行捏合时触发的第一个事件是单击onTouchStart,然后onTouchStart进行两次触摸onTouchMove.但调用event.preventDefault()event.stopPropagation()onTouchMove处理程序不(总是)停止页面缩放/滚动.防止第一次调用中的事件升级onTouchStart 确实有帮助 - 不幸的是,当时我还不知道它是否会是多点触控,所以我不能使用它.

  2. 第二种方法正在touch-action: none开始document.body.这适用于Chrome Android,但如果我在所有元素上设置此功能(我的组件除外),我只能使其与Firefox Android一起使用.因此,虽然这是可行的,但似乎它可能会产生不必要的副作用和性能问题.编辑:进一步的测试表明,只有在触摸开始之前设置CSS时,这适用于Chrome.换句话说,如果我在检测到2个手指时注入CSS样式,则会touch-action被忽略.所以这在Chrome上没用.

  3. 我还尝试在组件挂载上添加一个新的事件监听器:

    document.body.addEventListener("touchmove", ev => {
      ev.preventDefault();
      ev.stopImmediatePropagation();
    }, true);
    
    Run Code Online (Sandbox Code Playgroud)

    (和相同的touchstart).这样做适用于Firefox Android,但在Chrome Android上无效.

我的想法已经不多了.是否有可靠的跨浏览器方式来实现Google显然所做的事情,或者他们是否在每个浏览器上使用多个hacks和大量测试来使其工作?如果有人在我的方法中指出错误或提出新方法,我将不胜感激.

javascript cross-browser reactjs

19
推荐指数
1
解决办法
9766
查看次数

跟踪Python中的内存泄漏(多处理)

我有一个multiprocessing泄漏内存的应用程序.但是,泄漏不是主要过程(根据Dowsertop),而是在子过程中.有什么办法可以在子过程中使用Dowser(或类似的工具)来追踪泄漏吗?如果没有,它如何追踪它?

更新:我花了很多时间尝试使用heapygnibbler的代码,但我无法找到泄漏.然后我在主过程中停止了cherpy并在子进程中启动了另一个(使用Dowser).但几分钟后,CherryPy就会停止收听端口... :(所以我仍然在寻找更好的主意.

python memory-leaks multiprocessing

14
推荐指数
1
解决办法
3449
查看次数

允许使用HTMLPurifier的data-*属性

目前我在HTMLPurifier中使用此代码来允许data-*HTML标记属性:

    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('div', 'data-aaa', 'Text');
    $def->addAttribute('div', 'data-bbb', 'Text');
    // ...
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以同时允许所有data-*属性,最好是在所有HTML标签上?(在我的情况下,它们不是安全问题 - 当然,据我所知)

php htmlpurifier

12
推荐指数
2
解决办法
1969
查看次数

如何在GitLab上的合并请求中请求CLA签名?

我想在GPL许可下发布项目,但是想在接受合并请求之前请求CLA(贡献者许可协议)签名.

GitHub有一些自动化的解决方案(ClaHub,cla-assistant),但我找不到任何与GitLab相似的东西.一个长期存在的问题是在本地添加对它的支持,但它已在2年前开放.

我知道Git签收可以用于DCO,但我想知道它是否可以某种方式(ab)用于签署CLA协议?

简而言之,我如何使签署的CLA过程尽可能轻松地为贡献者和我自己签署,同时仍然使协议(在某种程度上)具有法律约束力?

编辑:对投票结束的人:我再次检查了指导方针,在我看来这个问题正好落在了software tools commonly used by programmers; and is a practical, answerable problem that is unique to software development.它也不属于列出的例外,至少我理解它们的方式.也就是说,我很感激评论投票的原因,以便我可以更好地制定问题或者在需要时找到更合适的StackExchange网站.

git gitlab

12
推荐指数
1
解决办法
227
查看次数