是否可以使用Enumerator或EnumeratorM组成任意函数,以便通过应用函数首先对推送到iteratee中的每个单独的数据项进行预处理?
我合并失败,直到将其推送到GitHub之前,我才知道这是合并失败,现在我不知道如何撤消/还原它。
故事是这样的:
我打开了两个不同的分支,并对这些分支进行了一些更改。过了一会儿,我决定将那些分支合并回master分支,并$ git merge branch_name用于此目的。我合并了第一个分支,然后检查了master分支的日志:该分支上的所有提交都在master上。然后,我用同一命令进行第二个分支的合并。然后,我再次检查了master的日志,在这里我看到了合并分支上的提交,包括带有以下注释的提交:“合并分支branch_name”。当我合并另一个分支时,不包括这样的注释。
长话短说,问题在于git将第一个分支的提交合并到master了,就像它们已经是master的提交一样。当您检查来自“ GitHub”的网络图或来自“ gitg”的图时,没有留下第一个分支的痕迹,但是其提交显示为master分支的提交。第二个分支没有问题:单独显示该分支,并按预期进行合并。还要注意,在运行merge命令之后$ git branch -d branch_name,不幸的是,我继续通过删除分支,就像这是最紧迫的事情。
现在,我想回到两次连续合并之前的位置。任何帮助表示赞赏。如果您评论发生这种情况的原因,那也将是令人愉快的。
我在想我们可以证明一个程序有错误.我们可以对其进行测试,以评估它是否或多或少具有抗虫性.
但有没有办法(甚至在理论上)证明程序没有错误?
对于简单的程序,例如"Hello World",我想我们应该能够做到.但是大型项目呢?
如何以与Apache日志(即包括URL和客户端IP)的方式类似的方式记录进入Play 2应用程序的所有请求?
是否可以使用Play Framework 2.2在Scala中创建一个通用函数,它将任意对象序列化为JSON,而不必提供编写器或格式化程序?
例如,这个非通用代码将为Customer创建一个JSON响应:
import play.api.libs.json._
import play.api.libs.functional.syntax._
case class Customer(id: Int, name: String)
object scratch {
val p = Customer(1, "n")
//> p : Customer = Customer(1,n)
def createJsonResponseCustomer(data: Customer) = {
implicit val formatter = Json.format[Customer]
Json.obj("success" -> true, "data" -> Json.toJson[Customer](data))
}
createJsonResponseCustomer(p)
//> res0: play.api.libs.json.JsObject = {"success":true,"data":{"id":1,"name":"n"}}
}
Run Code Online (Sandbox Code Playgroud)
为了避免为每个不同的对象定义格式化程序,我想创建一个这样的通用函数:
def createJsonResponse[T](data: T) = {
implicit val formatter = Json.format[T]
Json.obj("success" -> true, "data" -> Json.toJson[T](data))
}
Run Code Online (Sandbox Code Playgroud)
但是,这种尝试产生错误No unapply function found的Json.format[T].
换句话说,这有效:
def …Run Code Online (Sandbox Code Playgroud) 我有Java应用程序,它集中使用2D浮点数组(float [] []数组),实际上在黑色背景上保存图像.两个维度都是等于(正方形)并且是2的幂(大多数是256,512,1024),因此在大多数情况下,靠近边界的区域具有零.
大小等于2的功率以提高性能(存在一些FFT)并且降低了那些阵列上的操作的复杂性,例如旋转等.最近我在6Gb的机器上面临这个应用程序的堆缺乏.通过我的计算 - 这个应用程序的内存消耗应该高达2-3Gb,而它达到4-5Gb(在Windows任务管理器中查看).我使用了"YourKit"分析器,它显示那些浮点数阵列确实占用了大部分内存,但是,这些浮点数组的总粗略大小应该是1.3Gb(嗯,我知道由JVM决定如何存储数据,但是我没想到内存消耗会有2-3倍的差异.
我试图使用Snappy压缩器动态压缩/解压缩数据(并且内存消耗降至3.5Gb),但性能下降了几次,这是不可接受的.此外,我在BufferedImage替换那些浮动[] []时测试性能,但性能非常差.
因此,还有两种方法可以减少内存消耗:1)为float [] []数组写包装器以保存"零"元素(有很多"空"行和列)2 )远离"2的力量"
这两种方式都需要相当多的编码/重构,所以当我想"成为或不成为"时 - 你可能对这个问题有更好的线索,伙计们?
谢谢!
由于Scala提供了一个处理并发性的很好的套件(Akka,并行集合,期货等),它也让我有些困惑.有什么样的指导线何时使用?某种最佳做法?
我正在使用一个java.util.concurrent.ConcurrentLinkedQueue对象在线程之间传递数据.
我应该申报我的推荐信volatile吗?
我正在尝试将 getopts 用于 bash 脚本。该脚本可以有标志,所有这些标志都是强制性的,并且需要包含一个值。当应该包含值的强制标志之一为空时,getopts 使用下一个行标志作为其内容。我该如何防止这种情况?
这是我的例子:
#!/bin/bash
while getopts "A:B:" OPTION
do
case $OPTION in
A)
GILIA="$GILIA $OPTARG"
echo GILIA $GILIA
;;
B)
GILIB="$GILIB $OPTARG"
echo GILIB $GILIB
;;
esac
done
Run Code Online (Sandbox Code Playgroud)
当使用两个带有值的标志时:
./test_opt2 -A aaa -B bbb
GILIA aaa
GILIB bbb
Run Code Online (Sandbox Code Playgroud)
当使用“-A”标志为空时:
./test_opt2 -A -B bbb
GILIA -B
Run Code Online (Sandbox Code Playgroud)
我知道这是 getopts 的正常/典型行为,并且我确信有一种方法可以解决这个问题......
有任何想法吗?
我以前也遇到过类似的问题,但上次至少有一些测试类无法初始化或类似的问题。这一次,Gradle 说
Task :foo-bar:liveTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo-bar:liveTest'.
> There were failing tests. See the report at: file:///C:/Users/...
Run Code Online (Sandbox Code Playgroud)
但 CI 服务器 TeamCity 并未显示此构建的测试失败。甚至当我在本地计算机上重新运行失败的 Gradle 任务以查看该报告时,JUnit 报告也没有显示任何测试失败或错误!测试中也没有在错误级别记录任何内容,也没有在我不希望看到的警告级别记录任何内容。
可能是什么问题呢?我该如何调试这个?