所以,我得出结论,Apache HttpComponents 4是我遇到过的最烦人的API之一.看起来他们应该很简单的事情就是花费数百行代码(我仍然不确定资源是否正确清理).
另外它要我做的事情如下:
List<NameValuePair> qparams = new ArrayList<NameValuePair>();
qparams.add(new BasicNameValuePair("q", "httpclient"));
qparams.add(new BasicNameValuePair("btnG", "Google Search"));
qparams.add(new BasicNameValuePair("aq", "f"));
qparams.add(new BasicNameValuePair("oq", null));
URI uri = URIUtils.createURI("http", "www.google.com", -1, "/search",
URLEncodedUtils.format(qparams, "UTF-8"), null);
Run Code Online (Sandbox Code Playgroud)
哪个,只是......不.我知道它是Java,我们并不是整个简洁的事情,但这有点多了.更不用说罐子高达700KB.
无论如何,足够的咆哮,我想看看人们与其他HTTP客户端库有什么样的体验?
我所知道的是:Jetty,hotpotato和AsyncHttpClient.
这是为了服务器端使用,我最感兴趣的是许多并发获取和大文件传输的性能.
有什么建议?
PS我知道古老的HttpClient 3.1仍然存在,但我想使用支持的东西.
@oleg:这是文档的建议:
HttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet("http://www.apache.org/");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
try { …Run Code Online (Sandbox Code Playgroud) 已经有一些类似的问题,但大多数要么专注于Nexus vs. Artifactory,要么是几年之久.
我想了解这两天的两个项目的立场.我的印象是,Nexus是最受尊敬的存储库管理器,但我确实倾向于(稍微)更喜欢纯粹的自由项目(嘿,一点意识形态从不伤害任何人).
我的用例非常简单:我只想要一个按需依赖缓存,我们有六个自己的工件.我将与Ivy(不是Maven)一起使用它,我们不做自动构建,只有几个开发人员使用它.所以我也想知道Nexus的更高级功能是否是我不需要的东西.
在做出选择之前我应该注意什么?
我有一个如此结构的集合:
{
_id: 1,
score: [
{
foo: 'a',
bar: 0,
user: {user1: 0, user2: 7}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要找到所有具有至少一个"得分"(得分数组中的元素)且具有特定值"bar"和非空"用户"子文档的文档.
这就是我提出的(似乎它应该工作):
db.col.find({score: {"$elemMatch": {bar:0, user: {"$not":{}} }}})
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
error: { "$err" : "$not cannot be empty", "code" : 13030 }
Run Code Online (Sandbox Code Playgroud)
还有其他办法吗?
任何人都可以为Java推荐一个轻量级,快速且有希望稳定的B树(或类似)库吗?
基本上我正在寻找磁盘上的地图; BerkeleyDB JE除了我不需要事务之外,对于只读并发很好,需要大约1/10大小(BSD或Apache许可证也很好).
需要纯Java,所以没有东京/京都机柜.
实现相关Collections接口将是一个加号(或者,原始类型的模板化接口也会很好).
JDBM看起来相当不错,但它似乎在2005年被放弃了(1.0,不低于).
还有DiskBackedMap,但他们一年前发布了一个alpha版本,此后一无所获.
还有别的吗?或者上述任何经历?
我不想要的东西:
关于这个主题有几个线程浮动,但我认为我的用例有些不同.
我想做的事:
到目前为止我的策略(只是计划,尚未尝试实施任何东西):
我模糊的主要问题是如何在实例之间同步内存中的数据 - 这会起作用,还是我遗漏了什么?
另外,在我开始使用内存问题之前,我可以在多大程度上推送它?我在GAE的RAM配额上找不到任何东西.(这个索引很小,但我可以想到更多我想添加的东西)
当然,有关更好方法的任何想法吗?
是否可以通过JDBC在Oracle中直接加载INSERT?
我目前使用批处理的预处理语句(通过Spring JDBC),有没有办法让它们绕过NOLOGGING表上的重做日志?
这与Oracle 11g有关.
最近遇到了这个面试编程测试:
我觉得我有一个非常可行的解决方案,但我想知道他们是否在寻找我错过的特定内容.
(如果它有所作为 - 这不是我自己的面试,所以我不是想欺骗任何未来的雇主)
以下是我的假设:
第三个要求有点模糊 - 从技术上讲,如果你有任何确切的解决方案,你"评估了所有可能的对".
第一遍:将艺术家姓名转换为数字ID; 将最喜欢的数据存储在临时文件中; 记录每位艺术家的用户收藏.
需要string-> int map来跟踪指定的id; 如果空间比速度更重要,则可以使用Patricia树(需要1/5空间和两倍于我的时间,不可否认,测试不是很严格).
第二遍:迭代临时文件; 抛弃那些没有单独地满足截止值的艺术家; 保持2d矩阵中的对数.
将需要n(n-1)/2字节(或短路,或整数,取决于数据大小)加上数组参考开销.应该不是问题,因为n最多是622K的0.01-0.05.
这似乎可以使用少于100MB的内存处理任何大小的真实数据集.
如果您不能进行多次传递(出于任何人为的原因),请使用Bloom过滤器数组来保持对数:对于您遇到的每对,找到它(可能)的最高过滤器,并添加到下一个最高过滤器.所以,第一次将它加到bf [0],第二次加到bf [1],依此类推,直到bf [49].或者可以恢复在某一点之后保持实际计数.
我没有运行数字,但最低的几个过滤器将相当大 - 这不是我最喜欢的解决方案,但它可以工作.
还有其他想法吗?
这实际上更像是一个Lucene问题,但它是在neo4j数据库的上下文中.
我有一个数据库,它被分为50个左右的节点类型(所以"其他类型的dbs中的"集合"或"表").每个属性都有一个需要索引的属性子集,有些属性名称相同,有些则没有.
搜索时,我总是希望找到特定类型的节点,而不是所有节点.
我可以看到三种组织方式:
每类型一个索引,属性自然映射到索引字段:索引"富", 'id'='1234'.
一个单独的全局索引,每个字段映射到一个属性名称,以区分该类型将其包含为value('id'='foo:1234')的一部分,或者一旦它们被返回就检查它们(我希望重复是非常罕见的).
单个索引,类型是字段名称的一部分:'foo.id'='1234'.
创建后,数据库是只读的.
在便利性,大小/缓存效率或性能方面,其中之一是否有任何好处?
据我所知,对于第一个选项,neo4j将为每种类型创建一个单独的物理索引,这似乎不是最理想的.对于第三个,我最终得到的大多数lucene文档只有一小部分字段,不确定是否会影响任何内容.
有没有人遇到一个Java库(或只是一些代码)来编写binaryPostgres的COPY命令使用的格式?
它看起来很简单,但如果某人已经找到了正确的元组数据格式,我也可以从那里开始.
实际上,即使只是描述所有数据类型的格式也会有所帮助.
谢谢.
我有一个250px宽的柱状图,当该系列中有10多个项目时,它看起来很棒,但是当只有2-3个项目时,条形图确实很宽,看起来有些奇怪。
_____
| |
| |
-----|-----
Run Code Online (Sandbox Code Playgroud)
我可以在系列配置中设置宽度:
{
style: { width: 25 }
}
Run Code Online (Sandbox Code Playgroud)
这可行,但是较细的条仍与先前位置左对齐,因此它们与轴刻度和标签不匹配。
像这样:
_
| |
| |
-----|-----
Run Code Online (Sandbox Code Playgroud)
我不想更改轴间距,我想以宽间隔的25像素条形(正确位于轴刻度线居中)结束:
_
| |
| |
-----|-----
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?