小编use*_*029的帖子

如何检查数组字段是否包含MongoDB中的唯一值或另一个数组?

我现在正在使用mongodb.

我有blogpost集合,blogpost有一个标签,这是一个数组,例如

blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']
Run Code Online (Sandbox Code Playgroud)

我该怎么做这些搜索

  1. 包含'tag1'
  2. 包含['tag1','tag2'],
  3. 包含任何['tag3','tag4']

mongodb

141
推荐指数
2
解决办法
8万
查看次数

GitHub上的"密钥无效"消息

我已根据此处概述的过程为新服务器安装生成了SSH密钥.但是,当我将内容复制id_rsa.pub到GitHub上的我的键列表时,我收到错误消息"密钥无效.确保您已正确复制文件."

生成的密钥有效的,我正在按原样复制它(所有在一行中,在开头/结尾没有空格).

有人知道会发生什么事吗?

github ssh-keys

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

优雅的网格搜索python/numpy

我有一个有一堆参数的函数.我不想手动设置所有参数,而是要执行网格搜索.我有一个每个参数的可能值列表.对于每个可能的参数组合,我想运行我的函数,该函数报告我的算法在这些参数上的性能.我想将这个结果存储在一个多维矩阵中,以便后面我可以找到最大性能的索引,这反过来会给我最好的参数.以下是代码的编写方式:

param1_list = [p11, p12, p13,...]
param2_list = [p21, p22, p23,...] # not necessarily the same number of values
...

results_size = (len(param1_list), len(param2_list),...)
results = np.zeros(results_size, dtype = np.float)

for param1_idx in range(len(param1_list)):
  for param2_idx in range(len(param2_list)):
    ...
    param1 = param1_list[param1_idx]
    param2 = param2_list[param2_idx]
    ...
    results[param1_idx, param2_idx, ...] = my_func(param1, param2, ...)

max_index = np.argmax(results) # indices of best parameters!
Run Code Online (Sandbox Code Playgroud)

我想保留第一部分,我按原样定义列表,因为我希望能够轻松地操作我搜索的值.

我还希望最终得到结果矩阵,因为我将可视化更改不同参数如何影响算法的性能.

但是,中间的位是相当重复和笨重的(特别是因为我有很多参数,我可能想添加或删除参数),我觉得应该有一个更简洁/优雅的方式来初始化结果矩阵,迭代所有索引,并设置适当的参数.

那么,有吗?

python numpy

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

将数组的每个元素传递给函数的更短方法

在Ruby中,您可以将map函数应用于数组的每个元素:

@files.map { |f| f.read) }
Run Code Online (Sandbox Code Playgroud)

其中有语法糖:

@files.map(&:read)
Run Code Online (Sandbox Code Playgroud)

是否有任何等价物

@files.map { |f| read(f) } 
Run Code Online (Sandbox Code Playgroud)

那是更像,与上面类似?

ruby

13
推荐指数
1
解决办法
1163
查看次数

Backbone.js路由而不更改url

我正在将基于Backbone.js和jQuery的单页Web应用程序迁移到Chrome扩展.但是,pushState基于hashbang的路由器模式似乎都不能很好地适应扩展中的环境.我得出的结论是,我最好直接渲染用户交互视图,window.location 完全绕过系统.但是,我不太确定如何在不改变对Router.navigate几十个文件的调用的情况下实现它.

是否有可插拔/模块化方式来保持Backbone路由系统但绕过对URL的任何更改?

jquery backbone.js hashbang pushstate

13
推荐指数
1
解决办法
8385
查看次数

针对移动Safari优化SHA256

这是目前(到目前为止)iPhone 4S和iPhone 5上移动Safari上最快的Javascript SHA256实现.

/** @fileOverview Javascript SHA-256 implementation.
 *
 * An older version of this implementation is available in the public
 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
 * Stanford University 2008-2010 and BSD-licensed for liability
 * reasons.
 *
 * Special thanks to Aldo Cortesi for pointing out several bugs in
 * this code.
 *
 * @author Emily Stark
 * @author Mike Hamburg
 * @author Dan Boneh
 */

/**
 * Context for a …
Run Code Online (Sandbox Code Playgroud)

javascript iphone safari optimization hash

13
推荐指数
1
解决办法
341
查看次数

空间填充不等大小的圆圈

这是我的问题:

  • 我需要在画布中显示一堆圆圈.
  • 存在任意数量的圆,每个圆具有预定义的半径.
  • 圆的总面积始终小于画布的面积.

我想定位圆圈,使它们占据画布内可用的最大空间,而不会相互接触.我的目标是实现视觉上令人愉悦的效果,其中圆圈在画布内分布均匀.我不知道这是否真的是"空间填充",因为我的目标不是最小化元素之间的距离,而是最大化它.

这是我想要实现的一个例子:

界

我的第一个"蛮力"想法如下:

  1. 对于每个圆:计算其边界与每个圆的边界之间的最短距离; 总结所有这些距离,称之为X.
  2. 计算所有X的总和.
  3. 随机更改圆圈之间的距离.
  4. 重做1-3以进行预设的迭代次数并获取在步骤(2)获得的最大值.

然而,这似乎并不优雅; 我确信有更好的方法来做到这一点.有没有现成的算法来实现这样的布局?我可以使用任何现有的库(JavaScript或Ruby)来实现这一目标吗?

编辑

这是接受答案的Javascript版本,它使用Raphael绘制圆圈.

javascript ruby layout geometry

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

什么是sinatra的控制器?

我被问到为什么"我在我的视图中创建了复杂的Ruby变量.我的控制器不应该声明这些变量吗?"

我的sinatra控制器是我的.rb文件吗?我有一个.rb文件和视图视图.

ruby sinatra

10
推荐指数
3
解决办法
5566
查看次数

接受参数作为单个对象或对象数组

我有一堆函数可以接受一个对象数组,或者一个对象被设计为一个包含一个对象的数组,我正在寻找一种更简洁的方法来完成它.基本上,我想知道如何使unless以下函数中的部分更简洁:

def foo(bar_or_bars)
  unless bar_or_bars.is_a?(Array)
    bar_or_bars = [bar_or_bars]
  end
  bar_or_bars.each { |baz| ... }
end
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!谢谢.

ruby parameters parameter-passing

10
推荐指数
2
解决办法
3900
查看次数

将Ruby gem加载到用户定义的命名空间中

给定一个定义顶级类的gem,它与我编写的一些代码冲突,是否可以以这样的方式要求gem,使其所有类都分组在我可以定义的模块中?例如,如果unsafe_gem定义了一个类:

class Word
  # ... some code
end
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

class Word
  # My word class.
end

module SafeContainer
  # This obviously doesn't work
  # (i.e. the gem still defines ::Word).
  require 'unsafe_gem'
end
Run Code Online (Sandbox Code Playgroud)

这样我就可以区分:

Word.new # => The class I defined.
SafeContainer::Word.new # => The class defined by the gem.
Run Code Online (Sandbox Code Playgroud)

一些进一步的细节:我的代码(例如'Word'类)已经包装在它自己的命名空间中.但是,我希望能够为用户提供启用"语法糖"形式的选项,这使得某些类可以在顶级命名空间下直接访问.但是,这会与我正在使用的一个宝石创建一个名称冲突,它定义了一个顶级类.目前提出的解决方案都不起作用,因为宝石实际上依赖于其全球定义的类; 因此,取消定义课程打破了宝石.当然,gem有多个文件,单独要求将其文件放入模块似乎是一个非常脆弱的解决方案.目前,我发现的唯一解决方法是:

begin
  # Require the faulty gem.
  require 'rbtagger'
rescue 
  # If syntactic sugar is enabled...
  if NAT.edulcorated?
    # Temporarily remove the sugar for the clashing class.
    Object.const_unset(:Word); …
Run Code Online (Sandbox Code Playgroud)

ruby gem namespaces

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