Bash有没有办法回忆起前一个命令的论点?
我通常会vi file.c
跟着gcc file.c
.
Bash有没有办法回忆起前一个命令的论点?
我对JSP的理解是,第一次加载时的每个JSP页面都被编译成Java Servlet.这对于ASPX页面是否相同(当然,不是对于servlet,而是ASP.NET等效项)?
JSP和ASP.NET(MVC 2)应该注意哪些其他技术差异?
我认为,JS数组只是一个哈希映射,它只接受整数值作为键.而.length属性只返回最大的索引+ 1.
这是正确的吗?还有其他差异吗?
我有一个使用AJAX的注册表单,以便我想在发生错误时刷新Recaptcha图像(即用户名已经在使用中).
我正在寻找与ReCaptcha兼容的代码,以便使用JavaScript重新加载它.
我刚刚在运行Mac OS X 10.5.8的MacBook上安装了Mercurial 1.6
"hg"向我显示了英语和德语随机混合的帮助文本,"hg -v"显示所有德语文本.为什么?
事实上,我在德国,而我的Mac则配有德语键盘.我有德国作为系统区域,但英语作为语言.
我说流利的德语,所以让我用德语跟我说话不是一个不可逾越的问题.但英语是我的母语,也是我喜欢的语言.
有谁知道如何覆盖这种刺激性的hg行为?
我需要将unix时间戳转换为日期对象.
我试过这个:
java.util.Date time = new java.util.Date(timeStamp);
Run Code Online (Sandbox Code Playgroud)
时间戳值是: 1280512800
日期应该是"2010/07/30 - 22:30:00"(因为我通过PHP得到它),但我得到了Thu Jan 15 23:11:56 IRST 1970
.
应该怎么做?
我需要用文本解析占位符abc $$FOO$$ cba
.我和Scala的解析器组合器一起攻击了一些东西,但我对解决方案并不满意.
特别是,我在正则表达式中使用零宽度匹配器(?=(\$\$|\z))
来停止解析文本并开始解析占位符.这听起来非常接近于scala邮件列表中讨论过的那些恶作剧,并且被多彩地解散了(这激发了这个问题的标题.)
所以,挑战:修复我的解析器没有这个黑客的工作.我希望看到从问题到解决方案的明确进展,因此我可以替换我的随机组装组合器的策略,直到测试通过.
import scala.util.parsing.combinator.RegexParsers
object PlaceholderParser extends RegexParsers {
sealed abstract class Element
case class Text(text: String) extends Element
case class Placeholder(key: String) extends Element
override def skipWhitespace = false
def parseElements(text: String): List[Element] = parseAll(elements, text) match {
case Success(es, _) => es
case NoSuccess(msg, _) => error("Could not parse: [%s]. Error: %s".format(text, msg))
}
def parseElementsOpt(text: String): ParseResult[List[Element]] = parseAll(elements, text)
lazy val elements: Parser[List[Element]] = rep(element)
lazy val …
Run Code Online (Sandbox Code Playgroud) 任何代码都可以提供副作用.大多数情况下,副作用可能是设计糟糕和/或需要重构的标志,但在进行单元测试时,我发现很难对其进行测试.请考虑以下示例:
[Test]
public void TrimAll_Removes_All_Spaces()
{
// Arrange
var testSubject = "A string with lots of space";
var expectedResult = "Astringwithlotsofspace";
// Act
var result = testSubject.TrimAll();
// Assert
Assert.AreEqual(expectedResult, result);
}
Run Code Online (Sandbox Code Playgroud)
测试以下扩展:
public static string TrimAll(this string str)
{
PokeAround();
return str.Replace(" ", "");
}
Run Code Online (Sandbox Code Playgroud)
测试将通过,但没有后卫的副作用.呼叫的影响PokeAround
将完全被忽视.
鉴于你不知道是什么PokeAround
- 它可能是任何东西! - 你怎么写一个防范它的测试?它可能吗?
澄清:
关于PokeAround
完全未知是一个非常不可能的场景,有一些评论,因为我们在编写测试时有源代码.我问这个问题的原因是,找到一种方法来防止后来添加的副作用.也就是说,当我编写测试时,我可能会将exension方法看起来像这样:
public static string TrimAll(this string str)
{
return str.Replace(" ", "");
}
Run Code Online (Sandbox Code Playgroud)
测试通过,一切都很好.然后,一个月后,当我正在度假时,一位同事加了PokeAround
电话.我希望我已经写过的测试失败,因为他做了.
我目前正在构建一个将用于触摸屏的UI.因此,我想将任何RadioButton组显示为ToggleButtons的水平行.我已经想出了如何显示ToggleButtons而不是标准项目符号:
<Style x:Key="{x:Type RadioButton}"
TargetType="{x:Type RadioButton}"
BasedOn="{StaticResource {x:Type ToggleButton}}">
Run Code Online (Sandbox Code Playgroud)
但是,这将显示一列 ToggleButtons,而不是一行.你知道一个简单的方法吗?
非常感谢!
我有一个插件,我用于使用Rails 2.X或Rails 3的网站.
在Rails 2.3中,我对复杂查询使用了很多"范围"方法:
p = Person.scoped({})
p = p.active
p = p.with_premium_plan if xyz
p
etc.
Run Code Online (Sandbox Code Playgroud)
但我看到它在Rails 3中发生了变化:
p = Person.scoped
etc.
Run Code Online (Sandbox Code Playgroud)
所以我必须在我的插件中执行类似的操作(能够在两个版本的Rails中运行它),或者你能提出更好的建议吗?
if Rails.version.split(".")[0] == "3"
p = Person.scoped
else
p = Person.scoped({})
end
Run Code Online (Sandbox Code Playgroud)
谢谢!文斯