小编Nat*_*ong的帖子

版本控制:合并后删除分支?

当您分支一些代码时,完成分支的工作,并将其合并回主干,您如何处理分支?从存储库中删除它?保留供参考?

看起来你会把它作为参考,但我想这个/branches目录可能会变得混乱.

(如果这不是人们普遍认同的,请发表评论,我会将其作为社区维基.)

澄清

jleedev 是对的 - 我们应该指定我们正在谈论的版本控制系统.

我考虑过Subversion,但也希望听到有关其他系统的回复.请说明您正在回答哪一个,或者,如果您想获得接受的答案<贿赂> <bribery>,请比较和对比几个系统.

svn version-control

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

ruby中的字符串文字如何绕过new/initialize,有没有办法对此进行检测?

今天下午我正在玩一个想法,偶然发现了一些我不太懂的东西.基本上我在这个实验中想要实现的是以某种方式知道每次创建一个字符串(以供以后使用,例如在某种DSL中).以下适用于通过String.new创建的任何String:

class ::String
  class << self
    alias_method :new_orig, :new
    def new(*args)
      o = new_orig(*args)
      puts "newing '#{o}'"
      o
    end
  end
  alias_method :initialize_orig, :initialize
  def initialize(*args)
    initialize_orig(*args)
    puts "initializing '#{self}'"
  end
end
Run Code Online (Sandbox Code Playgroud)

例如

irb > String.new("foo")
initializing 'foo'
newing 'foo'
 => "foo"
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚当你使用文字时如何创建一个String对象.例如,为什么不进行相同的初始化和设置:

irb > "literal string"
 => "literal string"
Run Code Online (Sandbox Code Playgroud)

我意识到当字符串是文字时,编译器正在做某事或其他不同的事情,但它不是需要初始化,只是作为一个功能齐全的对象?是否有任何技巧可以用来确定何时使用文字创建字符串,或者这是不可能做到的?

谢谢!

ruby internals

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

为什么我不需要明确借出一个借来的可变变量?

我刚刚写了一个小的Rust程序,它计算Fibonacci数并记住计算.它有效,但我有点困惑为什么,特别是递归调用.(它也可能不是惯用的.)

这是程序:

use std::collections::HashMap;

fn main() {
    let n = 42; // hardcoded for simplicity
    let mut cache = HashMap::new();
    let answer = fib(n, &mut cache);
    println!("fib of {} is {}", n, answer);
}

fn fib(n: i32, cache: &mut HashMap<i32,i32>) -> i32 {
    if cache.contains_key(&n) {
        return cache[&n];
    } else {
        if n < 1 { panic!("must be >= 1") }

        let answer = if n == 1 {
            0
        } else if n == 2 {
            1
        } else …
Run Code Online (Sandbox Code Playgroud)

recursion ownership rust

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

PHP Intranet可以共享Windows登录吗?

我创建了一些基于PHP的Intranet资源,要求用户登录.用户创建自己的登录,并验证他们是否使用cookie登录.

我被问到是否可以将该登录绑定到他们的Windows登录名.我最初的回答是"网页无法访问您的Windows登录 - 这将带来安全风险." 但我们的一个部门使用Sharepoint,事实上它确实与Windows登录相关联.

怎么做的?我可以用PHP做吗?如果是这样,为什么它不是一个可怕的安全漏洞?

php windows sharepoint login

7
推荐指数
2
解决办法
2913
查看次数

PHP:显示信息的最佳安全实践?

在PHP中,我知道使用参数化查询是防止SQL注入的最佳方法.

但是,如何清理将用于其他目的的用户输入,例如:

  • 显示回用户(潜在的跨站点脚本向量)
  • 处理电子邮件或填写邮件正文

htmlentities()对非数据库使用进行清理是最好的方法吗?什么被认为是最佳做法?

php security sanitization user-input

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

在SQL中放置逻辑的优点和缺点?

在一项新工作中,我刚刚接触了将逻辑放入SQL语句的概念.

在MySQL中,一个愚蠢的例子是这样的:

SELECT
    P.LastName, IF(P.LastName='Baldwin','Michael','Bruce') AS FirstName
FROM
    University.PhilosophyProfessors P
// This is like a ternary operator; if the condition is true, it returns 
// the first value; else the second value. So if a professor's last name 
// is 'Baldwin', we will get their first name as "Michael"; otherwise, "Bruce"**
Run Code Online (Sandbox Code Playgroud)

对于一个更现实的例子,也许您正在决定销售人员是否有资格获得奖金.您可以获取各种销售数字并在SQL查询中进行一些计算,并返回true/false作为名为"qualifies"的列值.

以前,我会从查询中获取所有销售数据,然后在我的应用程序代码中完成计算.

对我来说,这似乎更好,因为如果有必要,我可以使用调试器逐步完成应用程序逻辑,但无论数据库做什么,对我来说都是一个黑盒子.但我是初级开发人员,所以我不知道什么是正常的.

让数据库服务器执行一些计算/逻辑有什么优缺点?

**基于Monty Python草图的代码示例.

sql

7
推荐指数
2
解决办法
2639
查看次数

如何使用jQuery自动选项到下一个字段?

在jQuery中,如何触发用户标签到下一个输入字段的行为?

我试过这个:

var e = jQuery.Event("keydown");
e.which = 9; // # Key code for the Tab key
$("input").trigger(e);
Run Code Online (Sandbox Code Playgroud)

但是触发事件不会将光标移动到下一个字段.

我想我可以手动移动光标focus(),但是决定接下来应该是哪个字段是浏览器已经知道该怎么做的事情,所以触发标签似乎更清晰.

有任何想法吗?

jquery javascript-events

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

是否有一种已知的算法来识别具有匹配仪表的歌词和音乐?

有时可以互换不同的曲调和歌词.例如:

  • 任何模仿歌曲都将是符合原始曲调的新歌词; 看看Weird Al的大部分歌曲
  • 基督教会中的赞美诗经常有几首曲子可以配合相同的歌词

虽然从理论上讲任何话可以唱任何调整,大多数组合将是非常尴尬的.具有良好米的感觉的人可以容易地识别好的或坏的匹配.程序也应该能够做到这一点.

例如,想象一下"The Star Spangled Banner"中的以下几行:

Oh say, can you see by the dawn's early light 
what so proudly we hailed at the twilight's last gleaming?
Run Code Online (Sandbox Code Playgroud)

以下模仿歌词(我刚刚编写)适用于曲调,因为它们具有相同的音高:

Oh say, can you see if my keister's on fire?
I suspect I was duped when I bought warming trousers
Run Code Online (Sandbox Code Playgroud)

以下歌词具有不同且不一致的音阶,将非常适合曲调:

If you liked it then you shoulda put a ring on it
Don't be mad when you see that he want it
Run Code Online (Sandbox Code Playgroud)

是否有一种已知的算法来识别具有匹配仪表的歌词和音乐?

algorithm parsing

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

Corey Haines在GoGaRuCo 2011上使用了哪些测试工具和方法?

GoGaRuCo 2011的这段视频中,Corey Haines展示了一些使Rails测试套件更快的技术.我总结如下:

  • 将尽可能多的代码放在Rails应用程序之外,放入其他模块和类中
  • 单独测试,没有加载Rails的开销
  • 在您的Rails应用程序中使用它们

但是有几件我不理解的事情.

  • 他在rspecspn或之间交替进行测试spna(例如,在大约3:50).是spn一个众所周知的工具?
  • 在他对非Rails类和模块的测试中,他包括正在测试的模块或类,但我没有看到他包括任何类似的东西spec_helper.他如何提供Rspec?

ruby testing ruby-on-rails

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

为什么Clojure对非法论证说"没有匹配的方法"?

正确使用Character/isWhitespace的用法包括:

(Character/isWhitespace \a) => false
(Character/isWhitespace \ ) => true
Run Code Online (Sandbox Code Playgroud)

但是,我的第一次尝试是这个,我发现错误令人困惑.

(Character/isWhitespace "")
  =>  IllegalArgumentException No matching method found: isWhitespace
  => clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:80)
Run Code Online (Sandbox Code Playgroud)

IllegalArgument部分是有道理的,但为什么它说"找不到匹配的方法"?显然,该功能确实存在.

澄清

我问这个问题的原因是我是Clojure的新手,并认为我从根本上误解了一些东西.

当我输入时(Character/isWhitespace \a),我认为我所说的是:"我知道有一个Character命名空间,并且在其中有一个被调用的函数isWhitespace,我想调用该函数并传入\a".

在这个心智模型上,我上面的结果令人困惑,因为Clojure似乎在说,"每当你给我一个这个函数不接受的参数类型时,我就会假装该函数不存在." 例如,"你不允许混合砖块,所以如果你试试,我会给你一个BlenderDoesntExist错误." 这很奇怪.

一些答案似乎暗示了这一点

  • 这个名字Character/isWhitespace只是一部分的什么Clojure的使用查找功能,而另一部分则是参数的类型.(我已经做了一些搜索:这可能是一种多方法吗?)
  • 该方法正在Java类中查找?

一个很好的答案将为我澄清这个过程.

clojure

7
推荐指数
2
解决办法
6403
查看次数