问题列表 - 第255062页

swift:平均连续正数

我们有一个数组,例如:

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是预期输出.

arrays closures swift

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

Spring @Cacheable和@Async注释

我需要缓存一些异步计算的结果.详细地说,为了克服这个问题,我试图使用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代表了计算.

java spring spring-cache completable-future spring-async

6
推荐指数
2
解决办法
3442
查看次数

使用 Scrapy 创建站点地图

是否可以使用 Scrapy 生成网站的站点地图,包括每个页面的 URL 及其级别/深度(我需要从主页遵循的链接数量)?站点地图的格式不必是 XML,它只是关于信息。此外,我想保存被抓取页面的完整 HTML 源代码以供进一步分析,而不是仅从中抓取某些元素。

有使用 Scrapy 经验的人能否告诉我这是否是 Scrapy 可能/合理的场景,并给我一些有关如何查找说明的提示?到目前为止,我只能找到更复杂的场景,但没有解决这个看似简单的问题的方法。

经验丰富的网络爬虫的插件:鉴于它是可能的,你认为 Scrapy 甚至是合适的工具吗?或者使用请求等库编写自己的爬虫会更容易吗?

python scrapy scrapy-spider

5
推荐指数
1
解决办法
1199
查看次数

为什么当我访问它时,我初始化的静态属性将为空?

我有以下代码(从真实代码中提取)

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)

c#

5
推荐指数
1
解决办法
638
查看次数

更强大的AC_COMPILE_IFELSE功能测试?

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并将其定义为更强大的版本?

提前致谢.

c++ autoconf compiler-warnings

7
推荐指数
1
解决办法
304
查看次数

Elasticsearch:如何在嵌套字段中获得完全匹配

映射包含不应分析的嵌套字段(不确定“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)

elasticsearch

4
推荐指数
1
解决办法
1908
查看次数

M2Crypto解密和验证大邮件的性能不佳

输入:使用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)

python verify signature m2crypto

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

DateTime.ToLocalTime 无法在夏令时正常工作

我有一个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到 和 的转换StringDateTime我只从事算术工作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)

这一切对我来说似乎很荒谬。为什么我需要将 …

.net c# timezone datetime

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

为什么/ copy在ILE模块中不起作用

好的,所以我有点困惑.我用一个程序创建了一个简单的模块.当内部包含原型和数据结构时,它就像一个魅力......

  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)

sql rpgle

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

使用jms序列化程序和ISO8601获取日期时间格式的不匹配

我收到这条消息:

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)

我认为我提供的日期格式正确,但显然没有.这是日期错了吗?

doctrine iso8601 symfony jmsserializerbundle jms-serializer

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