小编kut*_*kem的帖子

为什么我无法访问目标定义中的所有插件?

我在Eclipse中有关于目标定义的问题.我想使用插件版本1.0.0,这是我的目标平台定义,而我的工作区中的插件项目版本为1.0.2.对于我的目标定义中的所有其他插件,一切都按预期工作(我看到,因为如果缺少某些内容,错误会被标记),但是这个特定的,Eclipse不能提供给我的项目.只有插件版本1.0.2.该插件未设置为单例.

为什么这样,我该如何解决这个问题?


我发现当我关闭包含错误的项目时我可以访问正确的版本 - 但这很尴尬,还有另一种方法吗?


看起来它实际上不是特定于eclipse的问题,它在通过maven/tycho在命令行上构建时也会失败.具体来说,我的目标平台是Juno Release.是否存在插件,虽然功能的一部分不可用于其他捆绑包?我知道插件就在那里,但tycho和Eclipse都不想让它可用.

也许我还应该说它在编译时失败了.


虽然,正如我所说,这个问题存在变通方法,但我仍然想对这个问题有一个"好的"解决方案.您可以在https://github.com/kutschkem/Jayes上查看项目以及目标定义

您可能还需要先检查并构建此项目:git clone http://git.eclipse.org/gitroot/recommenders/org.eclipse.recommenders.git

设置目标平台后,尝试使用Jayes 1.0.0(在目标平台中)而不是Jayes 1.0.2(在您的工作区中)构建一些东西.您也可以尝试使用maven进行构建,但它也不起作用.

已知的解决方法:

  1. 关闭Jayes 1.0.2项目.然后,eclipse让你使用Jayes 1.0.0
  2. 对于运行(OSGi)应用程序,您可以选择加载哪些包.您可以在那里手动选择版本1.0.0
  3. 使用产品定义,您可以访问与变通方法2相同的运行时配置

如果有人找到maven的解决方法,我会很高兴知道它.

java eclipse eclipse-plugin target-platform

15
推荐指数
1
解决办法
311
查看次数

有没有相当于--no-deps的setuptools?

我有一个依赖项,只有在排除某些传递依赖项时我才能安装(我不关心).有了pip,你可以做--no-deps.但是,如果我在setup.py中声明了依赖项,系统会尝试安装传递依赖项.有没有办法声明我只需要库本身,而不是它的依赖项?

python setuptools setup.py

8
推荐指数
0
解决办法
137
查看次数

String.hashCode()效率低下吗?

在查看openjdk-1.6的java.lang.String源代码时,我看到String.hashCode()使用31作为素数并计算

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Run Code Online (Sandbox Code Playgroud)

现在我看这个的原因是我想到的问题是,比较String.equals中的hashCodes会使String.equals显着加快.但是现在看看hashCode,我想到了以下问题:

  • 不是更大的素数帮助避免碰撞更好,至少对于短字符串,看到例如"BC"具有与"Ab"相同的散列(因为ascii字母存在于区域65-122,不会是素数高于那个工作更好)?
  • 是否有意识地决定使用31作为素数,或者只使用一些随机的因为它是常见的?
  • 考虑到固定的字符串长度,哈希冲突的可能性有多大?这个问题的标题是原始问题,比较hashCodes和String长度有多好,已经可以识别字符串,以避免比较实际内容.
  • 有点偏离主题,也许:有没有一个很好的理由String.equals不会将hashCodes作为额外的快捷方式进行比较?
  • 更多偏离主题:假设我们有两个具有相同内容但具有不同实例的字符串:有没有办法断言相等而不实际比较内容?我猜不会,因为无论如何进入字符串长度,空间会爆炸成大小,我们将不可避免地发生碰撞,但是有些限制 - 只有某个字符集,最大字符串长度......以及我们需要限制多少字符串空间能够有这样的哈希函数吗?

java string hash

6
推荐指数
1
解决办法
895
查看次数

R:类似于apply的函数返回一个数据框?

我想将一个函数应用于数据帧的每一行.使用apply,结果本身不再是数据框,它看起来更像是列表或矩阵?(我不知道足够的R能够从输出中得知,只是它不是数据帧)

哪个是用于将函数应用于数据帧的每一行,返回新数据帧的正确函数?

我想要应用于每一行的功能:

map_uri <- function(request){
    ret <- request
    uri_stem <- uri_map[uri_map[,1] == request["cs-uri-query"],2]
    if(length(uri_stem) > 0){
        ret <- request
        ret["cs-uri-stem"] <- uri_stem
        ret["cs-uri-query"] <- "-"
    }
    if(request["cs-uri-stem"] == "/index.html"){
        ret["cs-uri-stem"] = "/"
    }

    return(ret)

}
Run Code Online (Sandbox Code Playgroud)

我在想什么:

cleansed <- apply(requests, 1, map_uri)
cleansed[,c("cs-uri-query", "cs-uri-stem")]
Run Code Online (Sandbox Code Playgroud)

这给了我错误

Fehler in cleansed [,c("cs-uri-stem","cs-uri-query")]:IndizierungaußerhalbderGrenzen

(指数超出界限)

由于某种原因,结构的变化使得上面的索引错误.

[编辑]

数据使这成为一个工作的例子:

uri_map.tsv http://pastebin.com/XhUuTMqA

uri_map <- read.table("http://pastebin.com/raw/XhUuTMqA", sep="\t", header=FALSE)
Run Code Online (Sandbox Code Playgroud)

并为转换函数输入数据:

http://pastebin.com/b7ja4rKn

请求< - read.table(" http://pastebin.com/raw/b7ja4rKn ",sep ="",header = TRUE)

r dataframe

6
推荐指数
1
解决办法
1万
查看次数

CMake中CUDA库的链接

我正在使用CMake 3.10,将已编译的库链接到CMake中的测试可执行文件时遇到问题。我进行了大量搜索,发现在早期版本中存在一个问题,您无法在结果可执行文件中链接中间库。我不知道这是否已解决还是一个问题。

我的CMake文件如下所示:

算法:

cmake_minimum_required (VERSION 3.9)
project(${MODULE_NAME}_core LANGUAGES CXX CUDA)


add_subdirectory("${core_impl_dir}" implementation)


set(cuda_src "parallel/ParallelComputation.cu")
set(cuda_hdr "parallel/ParallelComputation.h")

add_library(${PROJECT_NAME} STATIC "${cuda_src}" "${cuda_hdr}"
)


target_include_directories (${PROJECT_NAME} PUBLIC "include/" 
"parallel/"
)

source_group("parallel"  FILES "${cuda_src}" "${cuda_hdr}")


set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ${MODULE_NAME})
Run Code Online (Sandbox Code Playgroud)

测试:

project(${MODULE_NAME}_gtest LANGUAGES CXX CUDA)

add_subdirectory("${gtest_impl_dir}" implementation)

add_executable(${PROJECT_NAME} "${gtest_impl_src}")
target_link_libraries(${PROJECT_NAME} ${MODULE_NAME}_core)

enable_testing()
find_package(GTest REQUIRED)
include_directories("${GTEST_INCLUDE_DIRS}")


target_link_libraries(${PROJECT_NAME} ${GTEST_BOTH_LIBRARIES})

source_group("Implementation\\Source Files" FILES "${gtest_impl_src}" )

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ${MODULE_NAME})

add_test(${PROJECT_NAME} ${PROJECT_NAME})
Run Code Online (Sandbox Code Playgroud)

仅构建Algo可以正常工作,但是同时构建Test时,出现链接错误,例如

../implementation/libmatrix1_testCuda_core.a(ParallelComputation.cu.o):在Funktion中'cudaError cudaMalloc(float **,unsigned long)':tmpxft_00005ad0_00000000-5_ParallelComputation.cudafe1.cpp :(。text + 0x4'4' '

使用make VERBOSE=1我得到此链接命令的编辑:

/ …

c++ cuda cmake linker-errors

3
推荐指数
3
解决办法
4804
查看次数

将文件读入CharBuffer,然后StringBuilder或StringBuffer似乎遗漏了部分文件.为什么?

以下代码似乎只在StringBuilder中编写了一小部分文件 - 为什么?

    Reader rdr = new BufferedReader(new InputStreamReader(new FileInputStream(...)));
    StringBuilder buf = new StringBuilder();
    CharBuffer cbuff = CharBuffer.allocate(1024);
    while(rdr.read(cbuff) != -1){
        buf.append(cbuff);
        cbuff.clear();
    }
    rdr.close();
Run Code Online (Sandbox Code Playgroud)

更多信息:文件比CharBuffer大,我也可以从调试器看到charbuffer确实按预期填充.进入StringBuilder的唯一部分似乎来自文件中间的某个地方.我正在使用openJDK7.我想知道为什么会出现这种行为以及如何解决这个问题.

java

2
推荐指数
1
解决办法
6464
查看次数

如何对依赖注入内容进行概述?

您如何了解哪些对象被注入哪里?我有一个相当小的项目,我使用guice,而不是因为我真的需要它(鉴于项目仍然很小),而是因为我想要更好地了解它.

我已经开始松开概述只有~10个班级; 是否有工具分析代码以显示依赖关系图?

这样可以更容易地快速查看我忘记了什么或者我需要单点范围注入的位置.还有guice,很多东西都是隐含的,能够明确地看到这些东西将有助于将来进行调试.

java eclipse guice

2
推荐指数
1
解决办法
89
查看次数