我继承了一个团队和一个(Java)代码库.
代码库使用了许多显式for each循环.我想用Commons Collections Transformers和Predicates及其收集和转换方法替换那些(编辑:在将来的代码中).
但是,Commons Collection不是通用的.我的代码库的其余部分,无论它缺少什么,都是,而且我不想引入大量的转换.
所以我正在观看Commons-Collections with Generics(http://sourceforge.net/projects/collections/)和Guava(以前的Google Collections)(http://code.google.com/p/guava-libraries /).
问题一:是否一般或两者都被认为是安全的生产用途?你在生产中使用过吗?
问题二:两者中,你推荐哪一个?任何使用过两者的人的答案都很棒,任何使用过两者的答案都更好!
最后,我的团队包括中高层的承包商和Java中级和初级的员工(编辑:但在非OO编程方面具有多年经验).所以我不想引入多个集合库,我确实想要一个对我的团队来说不会太难用的集合库.
谢谢!
编辑:我想是因为样板的量掩盖和淹没了实际业务代码来代替显式循环.我有嵌套循环调用具有嵌套循环的函数,所有这些都是单行的.有了适当的引进和培养,我觉得我的球队会找到一个集合/变压器/谓语方法清洁,更清晰,更快地写,更易于阅读.
我试图采取以字符串形式的二进制数和翻转的1和0,也就是在字符串中改变所有的1的为0的,和所有的0年代到1的.我是Python的新手,现在已经花了好几个小时试图解决它.
我在我的python代码中使用Paramiko(对于sftp).除了我每次导入或调用paramiko函数时,一切正常.此警告将显示:
C:\Python26\lib\site-packages\Crypto\Util\randpool.py:40: RandomPool_Deprecation
Warning: This application uses RandomPool, which is BROKEN in older releases. S
ee http://www.pycrypto.org/randpool-broken
RandomPool_DeprecationWarning)
Run Code Online (Sandbox Code Playgroud)
我知道这与Paramiko正在使用PyCrypto的一些不推荐的功能这一事实有关.
我的问题是,有没有办法以编程方式抑制此警告?我试过这个:
warnings.filterwarnings(action='ignore', \
category=DeprecationWarning, module='paramiko')
Run Code Online (Sandbox Code Playgroud)
甚至这个:
warnings.filterwarnings(action='ignore', \
category=DeprecationWarning, module='randpool')
Run Code Online (Sandbox Code Playgroud)
在'import paramiko'语句之前和paramiko特定函数调用之前,但没有任何作用.无论如何,这个警告都会出现.如果有帮助,这是第三方库中打印警告的代码:
在randpool.py中:
from Crypto.pct_warnings import RandomPool_DeprecationWarning
import Crypto.Random
import warnings
class RandomPool:
"""Deprecated. Use Random.new() instead.
See http://www.pycrypto.org/randpool-broken
"""
def __init__(self, numbytes = 160, cipher=None, hash=None, file=None):
warnings.warn("This application uses RandomPool, which is BROKEN in older releases. See http://www.pycrypto.org/randpool-broken",
RandomPool_DeprecationWarning)
Run Code Online (Sandbox Code Playgroud)
如果您知道解决方法,请帮我关闭此警告.
我见过DooPHP是世界上最快的MVC框架,我打算考虑这一建设任务关键型网站,这是能够处理超过10万个并发用户.
我必须在共享主机上从头开始构建我的网站,并在VPS上运行CPanel,它使用Apache 2.0.x和PHP 5.2.14以及MySQL.性能方面,在编写PDO(访问数据库)+ PHP与DooPHP编码时会有很大的不同吗?
我遇到了一些其他问题,这些问题描述了我的类似但不完全相同的情况.例如,这个问题显示了几乎相同的问题,除了我没有使用portlet - 我只是使用无聊的'JSP + JSTL + EL +等.
我有两个应用程序上下文,我想将JSP从一个导入到另一个.我知道那是怎么回事
<c:import context="/" url="/WEB-INF/jsp/foo.jsp"/>
Run Code Online (Sandbox Code Playgroud)
但是,我也想将参数传递给导入的foo.jsp.但是这段代码:
<c:import context="/" url="/WEB-INF/jsp/foo.jsp">
<c:param name="someAttr" value="someValue"/>
</c:import>
Run Code Online (Sandbox Code Playgroud)
似乎没有正确发送参数foo.jsp; 如果foo.jsp是*
<% System.out.println("foo.jsp sees that someAttr is: "
+ pageContext.findAttribute("someAttr")); %>
Run Code Online (Sandbox Code Playgroud)
然后打印出来:
foo.jsp sees that someAttr is: null
Run Code Online (Sandbox Code Playgroud)
而我想看到这个:
foo.jsp sees that someAttr is: someValue
Run Code Online (Sandbox Code Playgroud)
所以,显然,someAttr无法找到foo.jsp.
我该如何解决?
*(是的,我知道,scriplets==bad这只是用于调试这个问题)
我在Linux上设置了samba,用于从Windows进行单用户访问,并且需要阻止密码检查.我已将我的linux用户名添加到smbpasswd.尽管我的smb.conf中设置了访客帐户,但我创建的文件由用户nobody拥有.如何让samba作为我的用户ID运行?
smb.conf文件:
[global]
security = share
guest account = liam
...
[goodstuff]
path = /home/liam
read only = no
guest only = yes
guest ok = yes
Run Code Online (Sandbox Code Playgroud)
如果这是FAQ,请道歉; 我看了看,找了答案.
我想将double加倍到int.
例如,
double a=0.4, b=0.5;
Run Code Online (Sandbox Code Playgroud)
我想将它们都改为整数.
以便
int aa=0, bb=1;
Run Code Online (Sandbox Code Playgroud)
aa来自a和bb来自b.
有没有这样做的公式?
我只想询问是否可以在属性上插入jQuery变量.这是我的示例代码:
<html>
<head>
<script type="text/javascript">
$(function() {
var url = 'http://www.google.com';
var data = '?one=1&two=2&three=3';
});
</script>
</head>
<body>
<a href="jquery var">Click here</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我需要把href的jQuery var值.我怎样才能做到这一点?先感谢您.;)
我试图做一个简单的线性回归函数,但继续遇到一个
numpy.linalg.linalg.LinAlgError:奇异矩阵错误
现有功能(带调试打印):
def makeLLS(inputData, targetData):
print "In makeLLS:"
print " Shape inputData:",inputData.shape
print " Shape targetData:",targetData.shape
term1 = np.dot(inputData.T, inputData)
term2 = np.dot(inputData.T, targetData)
print " Shape term1:",term1.shape
print " Shape term2:",term2.shape
#print term1
#print term2
result = np.linalg.solve(term1, term2)
return result
Run Code Online (Sandbox Code Playgroud)
使用我的测试数据输出到控制台是:
In makeLLS:
Shape trainInput1: (773, 10)
Shape trainTargetData: (773, 1)
Shape term1: (10, 10)
Shape term2: (10, 1)
Run Code Online (Sandbox Code Playgroud)
然后它在linalg.solve线上出错.这是一本教科书线性回归函数,我似乎无法弄清楚为什么它会失败.
什么是奇异矩阵误差?
我想编写一个类型别名来缩短,修改和封装的Scala代码.假设我有一些集合,它具有作为地图列表的属性,其值是元组.我的类型会像List[Map[Int, (String, String)]]我的应用程序允许的那样编写类似的东西或更通用的东西.我可以想象有一个超级类型要求Seq[MapLike[Int, Any]]我或其他任何漂浮我的船,具体的子类更具体.
然后我想为这个长类型写一个别名.
class ConcreteClass {
type DataType = List[Map[Int, (String, String)]]
...
}
Run Code Online (Sandbox Code Playgroud)
然后我会愉快地使用ConcreteClass#DataType我可以拿一个,并使用它.
现在假设我添加了一个函数
def foo(a : DataType) { ... }
Run Code Online (Sandbox Code Playgroud)
我想从外面用空列表来调用它.我可以打电话foo(List()),但是当我想将我的基础类型更改为另一种类型时Seq,我将不得不回来更改此代码.此外,这个空列表不是非常明确的DataType.而伴侣对象没有相关的List方法,所以我不能打电话DataType(),或者DataType.empty.当我需要非空列表时,它会更加烦人,因为我必须写出这个长类型的重要部分.
有什么方法可以让Scala把我的类型理解为同样的东西,包括带有创建者方法的伴随对象,为了缩短代码和黑盒子呢?或者,为什么我不应该首先这样做?