我有以下用例:我希望能够推送git@git.company.com:gitolite-admin
使用用户的私钥gitolite-admin
,而我想推送git@git.company.com:some_repo
使用"我自己的"私钥.AFAIK,我无法解决这个问题~/.ssh/config
,因为在这两种情况下用户名和服务器名都是相同的.由于我主要使用自己的私钥,因此我已将其定义~/.ssh/config
为git@git.company.com
.有没有人知道一种方法来覆盖用于单个git
调用的密钥?
(旁白:gitolite基于密钥来区分谁在进行推送,因此在访问,所有权和审计方面,用户@服务器字符串对于不同的用户来说是相同的.)
我想测试一个类是否继承自另一个类,但似乎没有一个方法.
class A
end
class B < A
end
B.is_a? A
=> false
B.superclass == A
=> true
Run Code Online (Sandbox Code Playgroud)
我想要的一个微不足道的实现是:
class Class
def is_subclass_of?(clazz)
return true if superclass == clazz
return false if self == Object
superclass.is_subclass_of?(clazz)
end
end
Run Code Online (Sandbox Code Playgroud)
但我希望这已经存在了.
我想删除文件夹中大小小于200 kB的所有文件.
只是想在这里确定,当我在我的macbook上执行ls -la时,文件大小为171或143,我假设这是kb正确吗?
我犯了一个错误:我应该使用git pull --rebase
,但我发布了一个简单的git pull
,合并的所有内容,现在在我的分支的HEAD中有一个合并提交.
我想摆脱那个合并提交,我想我只是发出一个git rebase -i HEAD~3
,将我的最后一个本地提交移到顶部并将合并提交压缩到它中.唉,合并提交不适用于压缩.如果我这样做,我进入中间状态,我需要再次进行合并,这是很多工作.
有没有办法解决这个问题而不必再次执行合并?似乎应该可以以某种方式使用合并提交?
我试图在选择框上进行onchange调用.对于我的应用程序,我使用jquery.js和rails.js来提及UJS.但是生成的代码仍然是Prototype而不是jquery ajax调用.我的代码如下所示:
<%= select_tag :category,
options_for_select(
Category.find(:all,:select=>"name,id").collect{|c| [c.name,c.id]}),
:onchange => remote_function(:url => {:controller => "posts",
:action => "filter_post",
:filter =>"category"},
:with=>"'category_id=' + $('#category').val()") %>
Run Code Online (Sandbox Code Playgroud)
由此生成的代码是:
new Ajax.Request('/posts/filter_posts?filter=category', {asynchronous:true, evalScripts:true,
parameters:'category_id=' + $('#category').val() + '&authenticity_token=' +
encodeURIComponent('CCyYj1wqXtddK6pUV6bAxw0CqZ4lbBxDGQHp13Y/jMY=')})
Run Code Online (Sandbox Code Playgroud) 未来读者请注意:认为RSpec不认为您的哈希值相等?一个可能是OrderedHash,但是从常规RSpec输出你无法分辨.这是提示这篇文章的问题.
原始问题:
假设我有一个规范,我想测试一个方法生成适当的哈希.
it 'should generate the Hash correctly' do
expected = {:foo => 1, 'baz' => 2}
subject.some_method_that_should_generate_the_hash.should == expected
end
Run Code Online (Sandbox Code Playgroud)
这通常会失败,因为具有相同键值对的不同哈希可能会以不同的顺序返回它们的对.结果如下:
Failure/Error: subject.some_method_that_should_generate_the_hash.should == expected
expected: {:foo => 1, 'baz' => 2},
got: {'baz' => 2, :foo => 1}
Run Code Online (Sandbox Code Playgroud)
对于数组,使用=〜运算符求解.但是,这对Hashes不起作用.现在,我已经诉诸
it 'should generate the Hash correctly' do
expected = {:foo => 1, 'baz' => 2}
subject.some_method_that_should_generate_the_hash.each {|k,v|
v.should == expected[k]
}
end
Run Code Online (Sandbox Code Playgroud)
但这似乎不必要地冗长.我希望有一个明显的解决方案.我是否忽略了文档中的某些内容,或者RSpec没有适当的Matcher来进行无序的Hash平等?
我想知道,在特定条件下,是否可以在不使用任意精度数据类型的情况下删除浮点错误.
问题是通常的问题.语言是Ruby,但它包含在任何语言中:
f = 1829.82
=> 1829.82
f / 12.0
=> 152.485
(f / 12.0).round(2)
=> 152.48
Run Code Online (Sandbox Code Playgroud)
为什么不是152.49?因为浮点的精度有限:
format("%18.14f", f)
=> "1829.81999999999994"
format("%18.14f", f / 12.0)
=> "152.48499999999999"
Run Code Online (Sandbox Code Playgroud)
所以四舍五入是正确的.现在的问题是:有没有办法让我想反正答案,给出的下列情况:有上(数)业务强劲限制使用浮动进行的,所需要的精确度是有限的到小数点后两位(最多8个位数总共)和少量剩余的"错误"圆形答案是可以接受的吗?
用户可以输入有效的Ruby字符串,例如:
"foo / 12.0"
Run Code Online (Sandbox Code Playgroud)
其中foo是在执行字符串的上下文中提供的数字,但其中'12 .0'是用户输入的内容.想象一下带有一些免费公式字段的电子表格.字符串简单地被评估为Ruby,因此12.0变为Float.我可以使用ruby_parser + ruby2ruby gems构建一个解析树,将数据类型转换为Bignum,Rational,来自Flt库的东西,十进制浮点表示或者你有什么,但这很棘手,因为实际的字符串可以变成有点复杂,所以我不想这样做.如果没有其他可能的话,我会这样做,但这个问题是专门在这里看看我是否可以避开这条道路.因此,12.0的数据类型是严格Float和结果严格Float和我能做的唯一的事情是解释片段的最终答案,并试图"纠正"它,如果它四舍五入"错误"的方式.
用户唯一的计算涉及精度为两位小数的数字(总共最多8位).使用'simple'我的意思是浮点错误没有机会累积:我可以添加其中两个数字并将一个除以整数,但随后计算完成,结果舍入并存储并随后进行计算基于该舍入数字.通常只有一个浮点错误都会涉及,但我认为问题并不显著改变,如果两者可以积累,但残留的错误率可能是通过定义较大.
首先想到的是首先舍入到3位小数,然后是2位.但是,这不起作用.这将导致
152.48499999999999 => 152.485 => 152.49
Run Code Online (Sandbox Code Playgroud)
但是也
152.4846 => 152.485 => 152.49
Run Code Online (Sandbox Code Playgroud)
这不是你想要的.
接下来我想到的是将最小可能的增量(如人们已经指出的,取决于所考虑的浮点值)添加到浮点数(如果它在.5边界上轻推它).我主要想知道这可能导致"误报"的频率:添加最小增量的数字,即使它刚好低于.5边界的事实不是由于浮点错误,但是因为这只是计算的结果?
第二个选择是:只要永远的最小增量增加的数字,因为.5地区是唯一一个在那里也无妨重要.
编辑:我刚刚重写了问题,将我的部分答案纳入评论中,正如cdiggins建议的那样.我将奖励给了Ira Baxter积极参与讨论,尽管我还不确定他是对的:Mark Ransom和Emilio M Bumachar似乎支持我的观点,即在实践中,可能会进行修正相对大多数情况下,会产生"正确"的结果.
我仍然需要进行实验,看看结果是多么频繁,我完全打算这样做,但是我可以花在这上面的时间有点受限,所以我还没有完成它.这个实验并非无足轻重.
精简版
使分支master
再次等同的最简单方法是什么,抛弃任何差异?到目前为止,我只是使用git branch -D wip
,然后git checkout -b wip
,但这似乎有点傻.
动机
我经常wip
在我的分支旁边有一个分支master
,用于"正在进行的工作".有时,这样一个分支上的工作会"落后",当我重新发现它时,我发现我不再需要它了.当我想使用分支存储一组新的"正在进行的工作"并且我发现我只想放弃任何差异时master
,这种重新发现经常发生,因此新的"正在进行的工作"最重要.弄清楚差异是不值得的:上面描述的解决方案对我来说很好.有没有更好的解决方案来解决这个用例?
为了学习Clojure,我正在4clojure解决问题.我目前正在问题164,在那里你要枚举(部分)DFA接受的语言.一个有趣的条件是语言可能是无限的,因此解决方案必须是懒惰的(在这种情况下,解决方案的测试用例)(take 2000 ...
.
我有一个可以在我的机器上运行的解决方案,但是当我在网站上提交它时,它会炸掉堆栈(如果我增加可接受的字符串数量,从2000到20000确定,我也在本地吹掉堆栈,所以这是一个我解决方案的不足之处).
我的解决方案[1]是:
(fn [dfa]
(let [start-state (dfa :start)
accept-states (dfa :accepts)
transitions (dfa :transitions)]
(letfn [
(accept-state? [state] (contains? accept-states state))
(follow-transitions-from [state prefix]
(lazy-seq (mapcat
(fn [pair] (enumerate-language (val pair) (str prefix (key pair))))
(transitions state))))
(enumerate-language [state prefix]
(if (accept-state? state)
(cons prefix (follow-transitions-from state prefix))
(follow-transitions-from state prefix)))
]
(enumerate-language start-state ""))
)
)
Run Code Online (Sandbox Code Playgroud)
它接受DFA
'{:states #{q0 q1 q2 q3}
:alphabet #{a b c} …
Run Code Online (Sandbox Code Playgroud) 我需要从整数arraylist中删除整数.我对字符串和其他对象没有任何问题.但是当我删除时,整数被视为索引而不是对象.
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(300);
list.remove(300);
Run Code Online (Sandbox Code Playgroud)
当我试图删除300我得到:
06-11 06:05:48.576: E/AndroidRuntime(856): java.lang.IndexOutOfBoundsException: Invalid index 300, size is 3