在Ruby on Rails中,有一个功能允许你采取任何日期并打印出"很久以前"的样子.
例如:
8 minutes ago
8 hours ago
8 days ago
8 months ago
8 years ago
Run Code Online (Sandbox Code Playgroud)
在Java中有一种简单的方法吗?
如果我有一个我想要执行位操作的整数,我该如何将其加载到java.util.BitSet?如何将其转换回int或long?我不太关心BitSet它的大小- 它总是32或64位长.我只是想使用set(),clear(),nextSetBit(),和nextClearBit()方法,而不是位运算符,但我无法找到一个简单的方法来初始化位以数字类型设置.
我有一个调用Web服务操作的java客户端,它将证书"thumbprint"作为参数.我相信指纹是某种SHA1哈希值,采用十六进制字符串格式,是cert的公钥,但我不确定.
.NET框架似乎包含一种获取此值的简单方法(X509Certificate2.Thumbprint属性).在Windows中查看.cer文件的属性还会显示指纹,如下所示:
a6 9c fd b0 58 0d a4 ee ae 9a 47 75 24 c3 0b 9f 5d b6 1c 77
Run Code Online (Sandbox Code Playgroud)
因此,我的问题是:如果我有一个java.security.cert.X509Certificate的实例,有人知道如何在Java中检索或计算这个指纹字符串吗?
来自BaseHTTPServer模块的BaseHTTPHandler似乎没有提供任何方便的方式来访问http请求参数.解析路径中的GET参数和请求体中的POST参数的最佳方法是什么?
现在,我正在使用它进行GET:
def do_GET(self):
parsed_path = urlparse.urlparse(self.path)
try:
params = dict([p.split('=') for p in parsed_path[4].split('&')])
except:
params = {}
Run Code Online (Sandbox Code Playgroud)
这适用于大多数情况,但我想要一些更健壮的东西来正确处理编码和空参数等情况.理想情况下,我想要一些小而独立的东西,而不是一个完整的Web框架.
我试图在不移动指针的情况下阅读下一行,这可能吗?
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
while ((readString = buf.readLine()) != null) {
}
Run Code Online (Sandbox Code Playgroud)
虽然我会想要逐行阅读,但我需要写下当前行的下一行.
有可能的?
我的文件包含Http请求数据,第一行是GET请求,
在第二行是主机名,我需要在GET之前拉出主机才能将它们连接在一起.
主持人/ + GET网址,
GET /logos/2011/family10-hp.jpg HTTP/1.1
Host: www.google.com
Accept-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在将文件上传到Amazon S3存储桶.文件正在上传,但我得到以下警告.
警告:没有为流数据指定内容长度.流内容将缓冲在内存中,并可能导致内存不足错误.
所以我在代码中添加了以下行
metaData.setContentLength(IOUtils.toByteArray(input).length);
Run Code Online (Sandbox Code Playgroud)
但后来我得到了以下信息.我甚至都不知道这是警告还是什么.
数据读取的长度与预期的长度不同:dataLength = 0; expectedLength = 111992; includeSkipped = FALSE; in.getClass()= class sun.net.httpserver.FixedLengthInputStream; markedSupported = FALSE; 标记= 0; resetSinceLastMarked = FALSE; markCount = 0; resetCount = 0
如何将contentLength设置为InputSteam的metaData?任何帮助将不胜感激.
我是extjs的新手,我正在使用MVC架构.
当我的应用程序引用控制器的方法时,我这样做(in MyApp.Application):
Mb.app.getController('Main').myMethod();
Run Code Online (Sandbox Code Playgroud)
它已经很久了,但我认为这是可行的方法.
当一个控制器在一个闭包中调用它自己的方法时,我被引导使用这个代码(在MyApp.controller.Main:
controllerMethodOne: function(){
Ext.Ajax.request({
url: ...,
params: ...,
success: (function(response){
list = Ext.JSON.decode(response.responseText);
list.forEach(function(item){
storeMenu.add(
Ext.create('Ext.menu.Item', {
text: item.text,
handler: function(el){MyApp.app.getController('Main').controllerMethodTwo()}
})
)
})
})
})
},
Run Code Online (Sandbox Code Playgroud)
我引用了方法,MyApp.app.getController('Main').controllerMethodTwo()因为this没有引用闭包中的控制器对象,因此this..controllerMethodTwo()不起作用.
我发现这完全令人费解,我希望有人有想法解决这个MyApp.app.getController问题.
感谢所有的建议,我可以优化我的代码并提出:
// in my controller
mixins: ['Mb.controller.mixin.StoreMenu'],
// I use that style of menus in two controllers thats why I use a mixin
init: function() {
this.control({
'#vg_storeMenu menuitem': {
click: this.onStoreMenuClicked
}
}) …Run Code Online (Sandbox Code Playgroud) Grape似乎可以很好地为你的类路径添加jar.它还可以执行很多其他操作,例如提取和依赖关系管理.例如
#!/home/robert/bin/groovy
import org.apache.commons.lang.StringUtils
@Grab(group='commons-lang', module='commons-lang', version='2.4')
def strings = ['Hello', 'Groovy', 'AVeryLongWord!', 'A simple sentence']
strings.each { String aString ->
println "$aString: ${StringUtils.abbreviate(aString,10)}"
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果我的文件系统上有一个jar,我想动态添加到文件系统,那么我不得不求助于一个更加丑陋的解决方案.
#!/home/robert/bin/groovy
def loader = this.class.classLoader.rootLoader
loader.addURL(new File("/home/robert/somejars/arithmetic-1.1.jar").toURI().toURL())
// can't use traditional package import
arithmeticMainClass = Class.forName("org.scharp.arithmetic.Main")
println "42 - 23 = " + arithmeticMainClass.subtract(42, 23)
// can't use "new" operator
myArithmeticObject = arithmeticMainClass.newInstance()
Run Code Online (Sandbox Code Playgroud)
有没有办法让葡萄从文件系统中抓取一个罐子?如果没有,我可以以某种方式复制葡萄在groovy/java中做的事情吗?
我希望这个解决方案适用于可由许多用户和许多不兼容的jar运行的脚本,因此将jar添加到公共目录(如〜/ .groovy/lib /)将不起作用.
我可以为本地的jar库创建一个本地maven存储库,但这似乎有些过分.
我正在显示新的电子邮件IMAP,一切看起来都很好,除了一个邮件主题显示为:
=?utf-8?Q?Subject?=
我该如何解决?
在不同的情况下,Groovy"in"运算符似乎意味着不同的东西.有时x in y意味着y.contains(x),有时它似乎打电话y.isCase(x).
Groovy如何知道要调用哪一个?是否有一个特定的类或一组类Groovy知道哪些使用.contains方法?或者是由于某个对象上存在方法而触发的行为?是否有任何情况下in运算符完全变为其他东西?
java ×4
groovy ×2
python ×2
amazon-s3 ×1
bitset ×1
certificate ×1
closures ×1
controller ×1
date ×1
datediff ×1
email ×1
extjs ×1
extjs4.2 ×1
http ×1
imap ×1
in-operator ×1
inputstream ×1
jar ×1
metadata ×1
mime ×1
operators ×1
ruby-grape ×1
time ×1