我们有一个数组,例如:
let numbers = [-1.0,1.0,3.0,4.0,-1.0,-2.0,2.0]
Run Code Online (Sandbox Code Playgroud)
我们知道如何获得最大连续正数:
let pos = numbers.map({ () -> (Double) -> Int in var c = 0; return { c = $0 > 0 ? c + 1 : 0; return c } }())
// [0, 1, 2, 3, 0, 0, 1]
let maxConsecutivePos = pos.max()!
//3
Run Code Online (Sandbox Code Playgroud)
在我们的例子中,如何使用闭包和pos数组以相同的方式找到平均连续正数?对于这个例子,我们将sum(3 + 1)除以2 - > 2是预期输出.
我需要缓存一些异步计算的结果.详细地说,为了克服这个问题,我试图使用Spring 4.3缓存和异步计算功能.
举个例子,我们来看下面的代码:
@Service
class AsyncService {
@Async
@Cacheable("users")
CompletableFuture<User> findById(String usedId) {
// Some code that retrieves the user relative to id userId
return CompletableFuture.completedFuture(user);
}
}
Run Code Online (Sandbox Code Playgroud)
可能吗?我的意思是,Spring的缓存抽象是否会正确处理类型的对象CompletableFuture<User>
?我知道Caffeine Cache有类似的东西,但是我无法理解如果Spring正确配置它是否会使用它.
编辑:我对User
对象本身不感兴趣,但是CompletableFuture
代表了计算.
是否可以使用 Scrapy 生成网站的站点地图,包括每个页面的 URL 及其级别/深度(我需要从主页遵循的链接数量)?站点地图的格式不必是 XML,它只是关于信息。此外,我想保存被抓取页面的完整 HTML 源代码以供进一步分析,而不是仅从中抓取某些元素。
有使用 Scrapy 经验的人能否告诉我这是否是 Scrapy 可能/合理的场景,并给我一些有关如何查找说明的提示?到目前为止,我只能找到更复杂的场景,但没有解决这个看似简单的问题的方法。
经验丰富的网络爬虫的插件:鉴于它是可能的,你认为 Scrapy 甚至是合适的工具吗?或者使用请求等库编写自己的爬虫会更容易吗?
我有以下代码(从真实代码中提取)
public static class AssemblyLogger {
public static Lazy<Window> Window { get; } = new Lazy<Window>(NewWindowHandler);
public static IScheduler Scheduler =>
new DispatcherScheduler( Window.Value.Dispatcher );
}
Run Code Online (Sandbox Code Playgroud)
当我打电话时,Scheduler
我得到一个NullReferenceException
. 我看到调试器停止了
据我所知这应该是不可能的。Window
是静态初始化的并且是只读的,因此对它的任何进一步访问都应该是只读的,并且它永远不应该为空。
我已经针对初始化程序设置了一个断点,但它从未被击中
我也尝试过静态只读字段,但仍然存在同样的问题
public static readonly Lazy<Window> Window = new Lazy<Window>(NewWindowHandler);
Run Code Online (Sandbox Code Playgroud)
是否可能存在针对静态初始化的竞争条件?
到目前为止,进行 MCVE 的尝试尚未成功。下面的规范测试了我的最小可发布代码和真实代码。MCVE 通过了 :( 而真正的失败了。我缺少一些上下文,需要进一步的工作来隔离问题。
public class Tester
{
public static class AssemblyLoggerMCVE
{
public static Lazy<Window> Window { get; } = new Lazy<Window>(NewWindowHandler);
private static Window NewWindowHandler() => new Window(); …
Run Code Online (Sandbox Code Playgroud) Autoconf AC_COMPILE_IFELSE
在不同的编译器下错误地检测了我们的功能,例如Sun的C++编译器和IBM的xlC编译器.AC_COMPILE_IFELSE
似乎检查返回值,但有些编译器不打扰设置它或将其设置为意外值.稍后,我们使用不可用的选项.
在我的非Autoconf构建脚本中,我"fatal|error|illegal|unrecognized|not found|not exist"
用来检测编译器或链接器投诉.它比仅仅检查更健壮$?
.测试看起来像:
# infile and outfile are temp files that allow testing a feature
SH_ERROR=$($CXX -Wl,--enable-new-dtags -o "$outfile" "$infile" 2>&1 | $EGREP -i -c -E 'fatal|error|illegal|unrecognized|not found|not exist')
if [[ "$SH_ERROR" -eq "0" ]]; then
CXXFLAGS+="-Wl,--enable-new-dtags"
fi
Run Code Online (Sandbox Code Playgroud)
Autoconf文档AC_COMPILE_IFELSE
位于6.4运行编译器,但它没有讨论主题.事实上,该文件甚至没有定义AC_COMPILE_IFELSE
"成功["]的含义.
我的第一个问题是,编译器返回值是否标准化了?
我的第二个问题是,Autoconf用什么来确定"成功"?
我的第三个问题是,我们如何在Autoconf中做同样的事情?除此之外还有其他东西可供使用AC_COMPILE_IFELSE
吗?
一个相关的问题是(基于Stefan的答案),我们如何让Autoconf使用改进的AC_COMPILE_IFELSE
?是否有可能取消当前的流量AC_COMPILE_IFELSE
并将其定义为更强大的版本?
提前致谢.
映射包含不应分析的嵌套字段(不确定“not_analyzed”值是否准确)。是否可以对嵌套字段进行精确匹配?在 "metadata.value": "2014.NWJSD.47" 下面的查询中仍然被分析。Elasticsearch 将字符串分解为几个术语(“2014”、“NWJSD”、“47”)。我尝试使用“term”而不是“match”,但这没有返回任何结果。
"mappings" : {
"metadata" : {
"type" : "nested",
"properties" : {
"name" : {
"type" : "text",
"index" : "not_analyzed"
},
"value" : {
"type" : "text",
"index" : "not_analyzed"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
查询:
"query": {
"bool": {
"must": [
{
"nested": {
"path": "metadata",
"query": {
"bool": {
"must": [
{
"match": {
"metadata.name": "number"
}
},
{
"match": {
"metadata.value": "2014.NWJSD.47"
}
}
]
}
}
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud) 输入:使用openssl完成的大型多部分签名和加密电子邮件(~10MB).
解密文件似乎足够快.
获取解密信息以验证它们的时间超过了很长时间.似乎M2Crypto库存在一些问题.如果你用smime_load_pkcs7_bio
一个写p7s的文件替换这个呼叫+用smime_load_pkcs7
呼叫读它就会快得多.但我想避免在磁盘上写/读(因为它现在是我的瓶颈).
问题:有没有人对此性能问题有一些解决方法或解决方案?
python 2.7代码:
from M2Crypto import SMIME, X509, BIO, m2
# read signed and encrypted file
with open("toto.p7m", "r") as p7mFile:
p7mBio = BIO.File(p7mFile)
p7m = SMIME.PKCS7(m2.pkcs7_read_bio_der(p7mBio._ptr()), 1)
s = SMIME.SMIME()
# Decrypt
s.load_key('cnt.key', 'cnt.crt', callback = lambda x : 'cnt_password.info')
p7s = s.decrypt(p7m)
print("Decryption ok (and fast).")
# Verify
p7s_bio = BIO.MemoryBuffer(p7s)
p7, data = SMIME.smime_load_pkcs7_bio(p7s_bio)
# MUCH FASTER !!!
#p7, data = SMIME.smime_load_pkcs7('toto.p7s')
print("Wow this long to load something that is …
Run Code Online (Sandbox Code Playgroud) 我有一个DateTime
实例Kind = DateTimeKind.Utc
和一个时间跨度。
var dt = DateTime.UtcNow;
var ts = TimeSpan.FromDays(1);
Run Code Online (Sandbox Code Playgroud)
由于夏令时,当我本地化dt
然后添加时,我得到的结果与我添加然后本地化时ts
得到的结果不同。ts
var localizedFirst = dt.ToLocalTime() + ts; //Does account for daylight savings
var addedFirst = (dt + ts).ToLocalTime(); //Does not account for daylight savings
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪。添加本地化偏移量和添加时间跨度偏移量不应该是可交换和关联的吗?
我发现了一个类似的问题:为什么 DateTime.ToLocalTime() 不考虑夏令时?这个问题更多地涉及DateTime
到 和 的转换String
。DateTime
我只从事算术工作TimeSpan
。
该问题的最佳答案建议使用DateTimeKind.Unspecified
,以便运行时假定未指定的日期是 UTC,然后在本地化时正确转换它。我很惊讶这确实有效。如果我DateTime
像这样创建一个新的:
var dt2 = new DateTime(dt.Ticks, DateTimeKind.Unspecified);
Run Code Online (Sandbox Code Playgroud)
然后,两个操作顺序都会返回夏令时的正确结果。
(dt2 + ts).ToLocalTime()
dt2.ToLocalTime() + ts
Run Code Online (Sandbox Code Playgroud)
这一切对我来说似乎很荒谬。为什么我需要将 …
好的,所以我有点困惑.我用一个程序创建了一个简单的模块.当内部包含原型和数据结构时,它就像一个魅力......
ctl-opt option(*srcstmt:*nodebugio) nomain ;
dcl-ds IIM ext end-ds;
dcl-pr GetIIM LikeDS(IIM);
*n char(35) options(*nopass) value ;
end-pr ;
dcl-proc GetIIM export ;
dcl-pi *n LikeDS(IIM);
Item char(35) options(*nopass) value ;
end-pi ;
exec sql
select * into :IIM
from iim where iprod=:ITEM;
return IIM ;
end-proc ;
Run Code Online (Sandbox Code Playgroud)
但是当我使用/ copy时,SQL编译器不喜欢数据结构并给我一个错误......
原型
/if defined(GetIIM)
dcl-ds IIM ext end-ds;
dcl-pr GetIIM LikeDS(IIM);
*n char(35) options(*nopass) value ;
end-pr ;
/endif
Run Code Online (Sandbox Code Playgroud)
程序
ctl-opt option(*srcstmt:*nodebugio) nomain ;
/define GetIIM
/copy JAGRACE/SANDBOX3,prototype
/undefine GetIIM
dcl-proc …
Run Code Online (Sandbox Code Playgroud) 我收到这条消息:
Invalid datetime "2017-11-07T19:46:57.118Z", expected format Y-m-d\\TH:i:sP.
Run Code Online (Sandbox Code Playgroud)
使用JMS Serializer和配置时:
jms_serializer:
handlers:
datetime:
default_format: 'Y-m-d\\TH:i:sP'
Run Code Online (Sandbox Code Playgroud)
我认为我提供的日期格式正确,但显然没有.这是日期错了吗?