小编Eri*_*ker的帖子

什么是跟踪参考?

当我通过Git Extensions将新分支推送到远程存储库时,我收到一条警报说

The branch {branch name} does not have a tracking reference. Do
you want to add a tracking reference for {branch name}?
Run Code Online (Sandbox Code Playgroud)

什么是跟踪参考?我发现只有少数提到跟踪谷歌的参考文献,没有真正的定义.

git git-extensions

62
推荐指数
4
解决办法
2万
查看次数

与Scala/Akka演员相比,Java线程如何沉重?

我只是比较了scala actor和java线程的性能.

我惊讶地看到了差异,我观察到,通过我的系统,我能够产生最多~2000个线程(一次只能生存)但是使用相同的系统我能够产生~50万个scala的演员.

两个程序都使用了大约81MB的JVM堆内存.

你能解释一下java线程如何比scala/akka演员更重吗?使scala-actor重量轻的关键因素是什么?

如果我想实现最佳的可扩展性,我应该选择基于actor的Web服务器而不是基于Java的传统Web/app服务器,如JBoss或Tomcat?

谢谢.

java performance multithreading scala akka

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

为什么Ruby定义Object#=〜?

在阅读了对另一个问题中的答案的评论并做了一些研究之后,我看到它=~被定义Object,然后被String和覆盖Regexp.实现StringRegexp似乎假设其他类:

"123" =~ "123" # => TypeError: type mismatch: String given
/123/ =~ /123/ # => TypeError: can't convert Regexp to String
Run Code Online (Sandbox Code Playgroud)

虽然=~是定义的Object,但+不是:

Object.new =~ 1 # => nil
Object.new + 1 # => undefined method `+' for #<Object:0x556d38>
Run Code Online (Sandbox Code Playgroud)

为什么Object#=~定义,而不是限制=~StringRegexp

ruby

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

这个数据结构有形式吗?

我正在为我正在使用的数据结构寻找数学形式,以便我可以找到相关的定理和算法.

假设您有以下内容:

  • 主题的有向无环图.
  • 在每个主题中,主题,一组文档中的项目和一组组中的项目之间存在一个或多个关系.
  • 这些组可能是一个简单的集合,也可能最终成为DAG.它们用于管理文档与主题的关联的可见性.

直到最近我才遇到超图,这些超图似乎相关但过于笼统.这个数据结构有形式吗?如果没有,可以用数学术语更简洁地描述它吗?

artificial-intelligence directed-graph directed-acyclic-graphs data-structures

7
推荐指数
1
解决办法
321
查看次数

微小的随机ID生成

我正在尝试生成用于Google App Engine应用程序的唯一ID,并希望获得有关我正在考虑使用的方法的可行性的反馈(最后的问题).我已经阅读了很多关于这个主题的问题,但我不记得遇到过这种特殊的方法.

我想要随机查看ID,例如MD5哈希,但我也希望它们很小.沿着tinyurl线的四到六个字符将是理想的.在我的应用程序的上下文中,ID将用于用户生成的内容,例如人们将要编写的测试问题.这些ID不一定是随机的(如果它们看起来像序列ID就没问题),但我正在考虑使用的方法适用于此,所以它并不是真正的问题.

熟悉Google App Engine的人会知道,对数据存储的写入特别昂贵,并且如果对同一实体组中存在过多的写入,则会导致超时.分片计数器是一种常用于避免单个全局计数器上的写入争用以及与之一起的失败事务的方法.

除了获得短ID和避免写入争用,我还试图避免生日悖论.我想为有数百万个ID的可能性做准备,即使这有点过分.

我正在考虑沿着以下几行使用分片计数器:

  • 计数器在用户上分片,因此每个用户都有一个分片.每个计数器对象都有自己的特定于给定用户的计数,当该用户创建新项目时,该计数会递增.无论是否成功创建项目,计数都会递增.
  • ID的基础是以下字符串的MD5哈希:"<user-email-address> | <latest-counter-value>".
  • 然后截断生成的MD5哈希,最初为四个字符.
  • 保持单个全局"长度"值.只要前面的步骤导致重复键(一个想象这将在一开始就相当快地发生),长度的值将增加一.现在,新ID的MD5哈希值将以"长度"字符截断,而不是四个字符.
  • 我不想公开用户的电子邮件地址,这表明某种哈希值是一种好方法.

我的问题是:我是否正确地认为这将在很大程度上避免由于重复密钥导致的写入争用,并且长度字段上的写入争用可能不会成为问题,特别是在长度较长的情况下?谁能描述这里涉及的数学?长度是否会迅速增加到接近MD5哈希的长度,从而质疑整个方法的价值?为了让事情更容易维护,仅仅使用完整(更长)的MD5哈希会更好吗?有什么我可以忽略的吗?

google-app-engine md5

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

当`*`后面的`+`的含义,当后者用作正则表达式中的量词时

今天我遇到了以下正则表达式,想知道Ruby会用它做什么:

> "#a" =~ /^[\W].*+$/
=> 0
> "1a" =~ /^[\W].*+$/
=> nil
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Ruby似乎忽略了这个+角色.如果这是不正确的,我不确定它在做什么.我猜它不会被解释为量词,因为它没有被*转义并且被用作量词.在Perl/Ruby正则表达式中,有时当-在不能将其解释为特殊字符的上下文中使用字符(例如)时,它被视为文字.但是如果在这种情况下发生了这种情况,我会期望第一场比赛失败,因为+左值字符串中没有.

这是对+角色的巧妙正确使用吗?以上行为是个错误吗?我错过了一些明显的东西吗

ruby regex

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

Rubyish方式反转正则表达式

假设正则表达式来自当前上下文之外的调用代码,然后传递给在当前项目之外实现的另一个调用:

["1", "2"].grep(/1/)        #=> ["1"]
Run Code Online (Sandbox Code Playgroud)

在进行调用时,是否有一种简单的Ruby方式来实现以下行为?

["1", "2"].grep(/1/.negate) #=> ["2"]
Run Code Online (Sandbox Code Playgroud)

此行为类似于使用=~操作员切换操作!~员.它可以使用#select#reject,当然,或者开辟或子类Regexp.但我很好奇Ruby中是否有一种方法可以用上述方式否定正则表达式返回的匹配.另外,我不关心比赛的位置是否false或者nil或者true或者是否与比赛的位置有关.

有一个理论问题是相关的,但超出了这里的简单考虑.


编辑:我得到迭代器是Ruby中过滤列表的一般方法,但是人们忽略了问题的限制.此外,我认为有关正则表达式被颠倒的方式有一些很好的功能.对于我来说,我不认为它过于紧张或过于聪明; 它是一种简单的面向对象编程,也是Ruby擅长的事情.

ruby regex

4
推荐指数
2
解决办法
1747
查看次数

如何使用OAuth 2.0为Ruby中的google预测API进行授权?

我试图简单地向google的托管模型sample.sentiment发送请求.我无法弄清楚如何通过谷歌使用Oauth 2.0进行授权,而且我正在获得无穷无尽的时间.如果你可以提供我的代码,这将是有帮助的.这就是我的工作方式.

client = Google::APIClient.new({:application_name => "CCE",:application_version => "1.0"} )
plus = client.discovered_api('prediction')

# Initialize OAuth 2.0 client    
client.authorization.client_id = 'my client id'
client.authorization.client_secret = 'my client secret'
client.authorization.redirect_uri = 'my callback url'

client.authorization.scope = 'https://www.googleapis.com/auth/prediction'

# Request authorization
redirect_uri = client.authorization.authorization_uri

# Wait for authorization code then exchange for token
client.authorization.code = '....'
client.authorization.fetch_access_token!

# Make an API call
 result = client.execute(
   :api_method => plus.activities.list,
   :parameters => {'hostedModelName' => 'sample.sentiment', 'userId' => ''})
Run Code Online (Sandbox Code Playgroud)

`

ruby api google-api

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

通过数组时删除重复

我有不同的哈希包含单位,分组为单位类型.我的代码旨在确定应返回哪个单元类型以进行进一步处理.但是,在检查每个列表时会发生很多重复.第一个if与第一个elsif完全相同.如何以最佳方式干燥代码?

from_unit = "gr"
to_unit = "kg"

WEIGHT = {
"gr" => 1000.0,
"kg" => 1.0,
}

MEASURE = {
"mm" => 1000.0,
"cm" => 100.0,
"m" => 1.0
}

if WEIGHT.has_key?(from_unit) or WEIGHT.has_key?(to_unit)
  if WEIGHT.has_key?(from_unit) && WEIGHT.has_key?(to_unit)
    return WEIGHT
  elsif WEIGHT.has_key?(from_unit)
    raise RuntimeError, "#{to_unit} is not a known unit"
  else
    raise RuntimeError, "#{from_unit} is not a known unit"
  end
elsif MEASURE.has_key?(from_unit) or MEASURE.has_key?(to_unit)
  if MEASURE.has_key?(from_unit) && MEASURE.has_key?(to_unit)
    return WEIGHT
  elsif MEASURE.has_key?(from_unit)
    raise RuntimeError, "#{to_unit} is not a known unit" …
Run Code Online (Sandbox Code Playgroud)

ruby hash

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

如果你有时间和倾向于创建编程语言,它会有什么特点?

只是好奇.如果你有时间和倾向于创建编程语言,它会有什么特点?

我希望看到的一种语言尽可能多地借用Python的语法,但编译成运行速度与C或C++一样快的机器代码.

c++ python

0
推荐指数
1
解决办法
328
查看次数