任何人都可以解释为什么Double.MIN_VALUE
实际上不是双打可以采取的最小值?这是一个正值,Double可以是负面的.
我明白为什么它是一个有用的数字,但它似乎是一个非常不直观的名称,特别是与之相比时Integer.MIN_VALUE
.调用它Double.SMALLEST_POSITIVE
或MIN_INCREMENT
类似语句会有更清晰的语义.
此外,双打可以采取的最低价值是多少?是-Double.MAX_VALUE
吗?文档似乎没有说.
我想使用hamcrest声明两个映射相等,即它们具有指向相同值的相同键集.
我目前最好的猜测是:
assertThat( affA.entrySet(), hasItems( affB.entrySet() );
Run Code Online (Sandbox Code Playgroud)
这使:
方法断言Assert类型中的(T,Matcher)不适用于参数(Set>,Matcher >>>)
我还研究了containsAll的变体,以及hamcrest包提供的其他一些变体.谁能指出我正确的方向?或者我是否必须编写自定义匹配器?
编辑:我现在有一个解决方案,但我真的很清楚简要描述不同的限制是什么,即由FD_SIZE,launchtl限制文件,sysctl -w kern.maxfilesperproc,ulimit等设置的限制.
有人可以帮我理解OSX上打开文件句柄的限制.ulimit给了我一个答案:
$ ulimit -a
...
open files (-n) 256
Run Code Online (Sandbox Code Playgroud)
我无法ulimit
改变这一点,但人们建议使用launchctl
(例如http://usrinapto.wordpress.com/2010/03/06/mac-os-x-10-6-max-open-files-too-many -open-files /)
但是,使用它不会改变报告的限制ulimit
.
但是,我的应用程序似乎能够在崩溃之前打开10k文件lsof
,例如:
$ lsof -p 87599 | wc
10279 92505 1418903
Run Code Online (Sandbox Code Playgroud)
(它可靠地在10279和10305打开的文件之间崩溃)
所以有明显不同的限制.我也看过(在上面的链接上)的谈话FD_SETSIZE
.
有人可以向我解释不同的限制是什么,以及它们是如何设置的?
如果它是相关的,我正在使用SWIG包装一个用于Java的C/C++库.
编辑:我也尝试过:
sudo sysctl -w kern.maxfiles=20000
Run Code Online (Sandbox Code Playgroud)
没有成功.也
#define FD_SETSIZE 20000
Run Code Online (Sandbox Code Playgroud)
没有效果.
编辑:也尝试过
launchctl limit maxfiles 20000 20000
Run Code Online (Sandbox Code Playgroud)
没有效果.
编辑:解决方案:
sysctl -w kern.maxfilesperproc=20000
Run Code Online (Sandbox Code Playgroud)
(来自http://krypted.com/mac-os-x/maximum-files-in-mac-os-x/)
编辑:我已经编写了一个小程序来测试它(基于如何在Mac OS X上增加C中"最大打开文件"的限制),并发现我可以要求的最大打开文件数是10240:
#include <sys/resource.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
struct …
Run Code Online (Sandbox Code Playgroud) 我正在使用R中的"光栅"包从光栅文件创建一些地图.我想创建比较光栅,并排显示几个地图.重要的是,无论每个地图中的值如何,所使用的颜色比例对于所有地图都是相同的.例如,如果地图1的值为0-1,而地图2的值为0-0.5,则值为0.5的单元格在两个地图上应具有相同的颜色.
例如:
我希望值为0.5以在两个地图中具有相同的颜色(即黄色,红色和绿色之间).目前的行为是它在地图1中是黄色,在地图2中是绿色.
我无法找到一种方法来完成这项工作.我看不出有任何方法可以设置用于绘图功能的像素值范围.setMinMax()没有帮助(因为'plot'总是计算值).即使尝试手动设置值(例如g1 @ data @ max < - 10)也不起作用(绘图时会忽略这些值).
最后,制作一堆地图(可能预期在同一色标上绘制所有内容)也不起作用 - 每个地图仍然有自己的色标.
有关如何做到这一点的任何想法?
编辑:
我最终使用的解决方案是:
plot( d, col=rev( rainbow( 99, start=0,end=1 ) ), breaks=seq(min(minValue( d )),max(maxValue(d)),length.out=100) )
Run Code Online (Sandbox Code Playgroud) 我们有一些数据表示在不同情况下的许多模型运行.对于单个场景,我们希望显示平滑的平均值,其中填充区域表示特定时间点的标准偏差,而不是平滑拟合的质量.
例如:
d <- as.data.frame( rbind( cbind( 1:20, 1:20,1 ), cbind(1:20, -1:-20,2 ) ) )
names(d)<-c("Time","Value","Run")
ggplot( d, aes(x=Time,y=Value) ) + geom_line( aes(group=Run) ) + geom_smooth()
Run Code Online (Sandbox Code Playgroud)
生成一个图表,其中表示两次运行,平滑均值,但即使运行之间的SD增加,平滑的条形也保持相同的大小.我想让更平滑的环绕代表给定时间步长的标准偏差.
考虑到许多不同的运行和输出变量,是否存在非劳动密集型的方法?
我试图通过名称获取颜色,我遇到了在Java中将字符串转换为颜色,这表明使用java.awt.getColor
.
我无法弄清楚将它作为字符串传递的内容.下列
System.out.println( java.awt.Color.getColor( "black", Color.red ) );
Run Code Online (Sandbox Code Playgroud)
打印出来
java.awt.Color中[R = 255,G = 0,B = 0]
即它在那里使用默认颜色.
我把它放在一个文本框中,尝试了替代资本等等.这里的文档不是很有帮助.任何人都可以建议放入什么魔法字符串?
我正在编写一个XText编辑器,并进行一些语义突出显示.我正在解析的语言的一部分是指文件,它应该存在于项目中.我想根据这些文件是否在正确的位置来突出显示.目前,我有一个非常丑陋的解决方案,我确信有更好的方法:
public void provideHighlightingFor( XtextResource resource, IHighlightedPositionAcceptor acceptor ) {
...
String resStr = resource.getURI().toString();
String projName = resStr.replaceAll( "^.*resource/", "" ).replaceAll( "/.*", "" );
IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot();
IFile file = workspace.getFile( new Path( projName + "/" + value ) );
ok = file != null && file.exists();
Run Code Online (Sandbox Code Playgroud)
注意:"value"是我在解析时遇到的字符串,而不是当前文件.我想知道{workspace}/{project}/{value}是否存在.
必须有一种更好的方法来获取项目名称/位置,基于当前文件; 我把它作为一个XText问题,如果可能的话,我希望避免使用当前选择的编辑器,并在当前资源上进行基本选择,当前资源显示为XText资源.
注意:根据以下答案,我最终使用的代码是:
String platformString = resource.getURI().toPlatformString(true);
IFile myFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));
IProject proj = myFile.getProject();
IFile linkedFile = proj.getFile( value );
Run Code Online (Sandbox Code Playgroud) 我正在为Scala寻找一个简单的RDF库.到目前为止,我发现了三个,似乎都有问题:
有没有人有任何建议?我正在使用Scala 2.10,并且想要一些轻巧,快速和干净的东西.我大部分时间都在进行简单的查询和存储工作,但我也希望能够选择使用外部端点.
我正在尝试构建一个显示从一个类到另一个类的转换的图.我想让圆圈代表根据类属性调整大小的每个类,以及从一个类到另一个类的箭头,根据从一个类到另一个类的过渡数来确定大小.
举个例子:
library(ggplot2)
points <- data.frame( x=runif(10), y=runif(10),class=1:10, size=runif(10,min=1000,max=100000) )
trans <- data.frame( from=rep(1:10,times=10), to=rep(1:10,each=10), amount=runif(100)^3 )
trans <- merge( trans, points, by.x="from", by.y="class" )
trans <- merge( trans, points, by.x="to", by.y="class", suffixes=c(".to",".from") )
ggplot( points, aes( x=x, y=y ) ) + geom_point(aes(size=size),color="red") +
scale_size_continuous(range=c(4,20)) +
geom_segment( data=trans, aes( x=x.from, y=y.from, xend=x.to, yend=y.to, size=amount ),lineend="round",arrow=arrow(),alpha=0.5)
Run Code Online (Sandbox Code Playgroud)
我希望能够以不同的比例将箭头缩放到圆圈.理想情况下,我想要一个带有两个刻度的图例,但我知道这可能是不可能的(在一个ggplot上使用两个刻度颜色渐变)
有没有比将任意缩放应用于底层数据更优雅的方法呢?
我正在尝试发送UDP数据报(包含协议缓冲区消息)并获取消息太长的异常:
java.io.IOException: Message too long
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:625)
Run Code Online (Sandbox Code Playgroud)
我已设置发送缓冲区大小,并检查getBufferSize()的返回值,它大于消息:
byte[] b = msg.toByteArray();
System.out.println( "Serialised message in " + b.length + " bytes (max length: " + network.getSendBufferSize() + ")");
DatagramPacket p = new DatagramPacket( b, b.length, host, port );
network.send( p );
Run Code Online (Sandbox Code Playgroud)
输出:
VM version: 16.3-b01-279
Runtime version: 1.6.0_20-b02-279-9M3165
Vendor: Apple Inc.
Serialised message in 69424 bytes (max length: 531075)
Problem sending packet: java.io.IOException: Message too long
Run Code Online (Sandbox Code Playgroud)
我能理解它是否拒绝设置一个大尺寸的缓冲区,但它似乎设置了我要求的任何东西,然后不尊重它.
这是在OSX上; 我已经尝试过1.6和1.5
据我所知,非文档中的非捕获组由(:?)定义,就像在Java中一样.(我相信它是相同的底层库).
但是,这似乎不起作用:
var R = "a(:?b)c".r
R.findFirstMatchIn("abc").get.group(1)
Run Code Online (Sandbox Code Playgroud)
返回"b"(当它应为空时).我怀疑这通常不是问题,但在进行模式匹配时,这意味着我现在无法做到:
"abc" match {case R => println("ok");case _ => println("not ok")}
> not ok
Run Code Online (Sandbox Code Playgroud)
我要做:
"abc" match {case R(x) => println("ok");case _ => println("not ok")}
> ok
Run Code Online (Sandbox Code Playgroud)
有没有办法让这项工作"按预期"进行?
(注意 - 这是与在 ggplot 中使用多个尺寸比例相同的工作,但我问一个不同的问题)
我正在尝试构建一个显示从一个类到另一个类的转换的图。我想要用圆圈代表每个类,从一个类到另一个类的箭头代表转换。
我使用 geom_segment 和 arrow() 来绘制箭头。有什么办法可以:
我无法让position=“dodge”在这里做任何有用的事情。
举个例子:
library(ggplot2)
points <- data.frame( x=runif(10), y=runif(10),class=1:10, size=runif(10,min=1000,max=100000) )
trans <- data.frame( from=rep(1:10,times=10), to=rep(1:10,each=10), amount=runif(100)^3 )
trans <- merge( trans, points, by.x="from", by.y="class" )
trans <- merge( trans, points, by.x="to", by.y="class", suffixes=c(".to",".from") )
ggplot( points, aes( x=x, y=y ) ) + geom_point(aes(size=size),color="red",shape=1) +
scale_size_continuous(range=c(4,20)) +
geom_segment( data=trans[trans$amount>0.6,], aes( x=x.from, y=y.from, xend=x.to, yend=y.to ),lineend="round",arrow=arrow(),alpha=0.5, size=0.3)
Run Code Online (Sandbox Code Playgroud)