小编bsh*_*nks的帖子

对布尔列表中的元素布尔运算符是否有内置函数?

例如,如果你有n个相同长度的bool列表,那么elementwise boolean AND应该返回另一个列表,该列表的长度在所有输入列表都为True的位置为True,其他地方为False.

它很容易编写,我只是希望使用内置(如果存在)(为了标准化/可读性).

这是元素AND的实现:

def eAnd(*args):
    return [all(tuple) for tuple in zip(*args)]
Run Code Online (Sandbox Code Playgroud)

示例用法:

>>> eAnd([True, False, True, False, True], [True, True, False, False, True], [True, True, False, False, True])
[True, False, False, False, True]
Run Code Online (Sandbox Code Playgroud)

python list built-in boolean-operations elementwise-operations

27
推荐指数
2
解决办法
2万
查看次数

设计选择的原因导致JVM/CLR语言长期启动?

我正在考虑设计一种编程语言,我希望它以与CPython或Perl大致相同的速度启动.为了在我的语言中做出正确的设计选择以达到这个要求,我正在研究现有的动态语言,看看他们的设计选择如何影响他们的启动时间.许多基于JVM或CLR的语言实现比CPython或Perl具有更长的启动时间.这表明在JVM和/或CLR的设计中做出了设计选择,这导致了这种情况.那是什么选择,为什么这样做?

这是一个由三部分组成的问题:

  1. 动态JVM/CLR语言实现的缓慢启动是一个基本的设计问题,还是只是一个可以通过改进语言实现来纠正的小问题?
  2. 如果这是一个设计问题,那么JVM的哪些设计选择以及这些语言的设计选择会导致这些语言的启动延迟比CPython和Perl更长?
  3. 为了缓慢开始,获得了什么?也就是说,由于(2)所描述的设计选择,JVM/CLR动态语言对CPython和Perl缺乏什么好处?

请注意,其他SO问题已经处理" 为什么JVM启动缓慢? "以及各种JVM语言启动速度慢的原因.这个问题与那个问题截然不同,因为这个问题与设计权衡有关; 是为了换取那么长的启动时间而获得的收益?

其他SO问题询问用户如何加速各种JVM语言(答案往往是有一些预加载JVM的守护进程),但这不是我在这里要求的; 我问你如何设计一种允许快速启动(没有预加载)的语言(和/或虚拟机),以及为了换取这种情况你会失去什么.

背景研究

各种语言实现的速度

我在我的GNU/Linux机器上的非正式Hello World测试中对CPython和Perl进行了基准测试,发现它们的启动时间不到0.05秒.在这篇文章的其余部分,我会说"快速"意味着"启动时间不会比CPython或Perl更长",而"慢"意味着其他情况.

这是很容易找到的意见的是JVM本身和/或Java是慢启动(3,4,5,6),以及混凝土1秒或更长的数量级上的数字(7,27)和基准(8).但是2个Hello世界JVM基准开始仅为0.04秒(在GNU/Linux)(9,10).

Clojure的有大约0.6-1秒的启动时间(1,2); 这比我0.05秒的目标慢约20倍.ClojureCLR甚至更慢(1).Clojure启动时基准和讨论可以在博客文章Clojure bootstrapping(Kariniemi)中找到,为什么Clojure缓慢(Trojer).

一个创业时间的基准测试人员说,Clojure和JRuby "明显慢于其他所有人"(25); 这些也是仅有的两种基于JVM的动态语言.另一个(非常古老的)基准测试表明,Jython的启动速度也很慢(26).我们在这个问题上专注于动态语言,但是Scala的速度也不是很快(1).有一个名为Kawa的JVM Scheme (23).据报道,Kawa的启动时间约为0.4(24),比Clojure快,但仍比我的目标高出一个数量级.

启动期间有哪些实现?

两个(1 …

compiler-construction clr jvm language-design

20
推荐指数
1
解决办法
598
查看次数

Clojure测试框架的优势?

您更喜欢哪一个?为什么?各自的优点和缺点是什么?在哪种情况下,每个都比其他情况更胜一筹?

我对midje与clojure.test特别感兴趣,但也可以自由地提出其他Clojure测试框架.

另请参阅Clojure的最佳单元测试框架?(这个问题的答案没有详细说明"为什么").

testing unit-testing clojure

14
推荐指数
3
解决办法
3891
查看次数

Python日志记录:如何在日志配置文件中表示格式字符串中的换行符?

我正在从文件配置我的Python日志记录(请参阅http://www.python.org/doc//current/library/logging.html#configuration-file-format).

从该页面上的示例中,我在配置文件中有一个格式化程序,如下所示:

[formatter_form01]
format=F1 %(asctime)s %(levelname)s %(message)s
datefmt=
class=logging.Formatter
Run Code Online (Sandbox Code Playgroud)

如何在指定格式化程序的"格式"字符串中添加换行符?既不工作\n也不\\n工作(例如format=F1\n%(asctime)s %(levelname)s %(message)s不起作用).谢谢

python logging config newline

11
推荐指数
3
解决办法
6248
查看次数

哪个开源,可扩展,可能易于使用的问题跟踪器?redmine,trac,bugzilla,mantis,RT?

寻找具有分布式团队的中型Web应用程序打开项目的问题跟踪器.我们计划在自己的服务器上运行它.新用户必须非常容易提交新问题,并且必须与其他软件很好地集成.

我们的主要要求,按重要性降序排列:

  • 开源
  • 能够提供非常新用户友好的错误提交
    • 提交新问题必须尽可能简单,只需要一个屏幕填写(注册后),并且几个字段可见(例如只是"摘要"和"描述"会很好)
    • 谷歌代码是我们喜欢的那种界面的一个例子; Bugzilla的Bugzilla实例(https://bugzilla.mozilla.org/enter_bug.cgi)是我们不喜欢的那种新的bug提交界面的一个例子
    • 如果默认的提交界面不是新用户友好的,只要可以使用模板/皮肤轻松修改它就没问题.除了提交新用户错误的简单视图之外,还可以使用其他字段(例如分配问题的人)来编辑错误的"高级视图".
  • 有API; 或者,支持其他应用程序同时访问其数据库后端(我们希望查询和修改其他服务器上运行的其他单独软件的问题)

其他理想标准,按重要性降序排列:

  • 在日常使用中不会令人沮丧
  • 有一个相对较大的社区
  • hg(mercurial)很好地集成
  • 适合与外部整合:
    • 支持台/请求跟踪软件
    • 项目管理软件
    • auth系统(和/或支持OpenID登录)
  • 模块化; 如果我们修改问题跟踪器,我们希望将这些改进作为一个易于其他人安装的模块发布
  • 可以使用某种简单易用的问题重要性投票系统,例如Google代码上的明星; 我们打算创建或修改这样的组件以插入我们自己的外部投票系统
  • 适合与SugarCRM整合

当我说"顺从"时,我的意思是我们愿意在必要时自己编写问题跟踪器的扩展代码,但问题跟踪器的架构应该适合这种扩展.

问题跟踪器还包括支持服务台或项目管理功能,只要我们可以选择集成外部软件而不是使用附带的东西.我们不需要另一个维基(我们已经有一个我们喜欢的维基).

根据谷歌搜索(见评论),最流行的开源问题跟踪器是trac,bugzilla,mantis,RT(可能还有Launchpad).我还包括Redmine,因为我从未见过最近这些问题跟踪器和Redmine之间的比较,其中某人对Redmine有些不好说,而且在民意调查中Redmine有时会击败其他人.随意建议其他人(请记住其中一个标准是"相对较大的社区").

毫无疑问,那里有多个好问题跟踪器; 上面列出的许多声称可以扩展并与其他软件集成.最有帮助的是使用不止一个人的问题跟踪器之间的直接比较.

这些在可扩展性,可整合性和可塑性方面如何相互比较?

如果您使用过多个这样的产品,您会推荐哪些产品,以及您使用过哪些产品?

哪些已经与大量的auth系统/支持台系统/等集成

解释为什么特定流行的开源问题跟踪器(特别是上面列出的那个)不适合我们的情况的评论是非常受欢迎的; 这样可以节省我的时间.

谢谢!

project-management bug-tracking open-source issue-tracking

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

HTTP URL路径中分隔符的最佳实践

在HTTP URL路径中使用各种标点符号是不明智的吗?我正在为API定义资源URL.这些资源URL必须由各种客户端和中间件访问,存储和传输,因此重要的是它们不包含可能导致问题的字符.

RFC 3986,第2.2节."保留字符"将以下字符指定为子字符:!$&'()*+ ,; =

在HTTP方案中的URL路径中是否有任何非法任意使用?

即使它们根据标准是合法的,由于不兼容的软件,这些中的任何一个很有可能导致实际的互操作性问题吗?

在广泛部署的API中是否存在您之前使用过的任何特定子delim(这可以证明您使用的是安全的)?

动机是我们需要划分没有分层语义的键值对.我们正在考虑这样做:http://doriantaylor.com/policy/http-url-path-parameter-syntax.但是,如果这可能是一个问题,我们将只做http://example.com/key1/value1/key2/value2

谢谢

api url uri http urlencode

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

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

获取对 IPython 中当前 InteractiveShell 实例的引用(尝试挂钩 %exit)

我想在 IPython 中创建一个钩子,当我执行 Cntl-D、%Exit、%Quit 或 %exit 和 %quit 并确认时运行。

动机是我希望有一个线程在后台无限期地在 IPython 中运行,直到我按 Cntl-D 退出,然后我想告诉该线程退出。我想我将使用钩子向我的后台线程发送信号。

我想一种方法是包装 IPython::iplib::InteractiveShell::exit。这可能吗?有没有更好的方法来做我想做的事情?谢谢

ipython

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