小编Dav*_* J.的帖子

Clojure中的数字是否会下降?

有没有比以下更好的方法:

(defn in-interval?
  "Returns a predicate that tests if its argument falls in
  the inclusive interval [a, b]."
  [a b]
  (fn [x] (and (>= x a) (<= x b))))
Run Code Online (Sandbox Code Playgroud)

正在使用:

((in-interval? 5 8) 5.5) ; true
((in-interval? 5 8) 9)   ; false
Run Code Online (Sandbox Code Playgroud)

我不想使用range,例如,因为它构造了一个懒惰的序列.

clojure

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

白色空间的实验研究成果(语言设计和风格指南)?

实验研究对代码中的空白区域有何看法?让我具体一点:我所说的是认知研究,它可以比较人们阅读和掌握不同格式的视觉信息的速度和效果.

假设您正在设计一种新的计算机语言,并且必须做出一些影响源代码外观的决策.或者您只是为新语言编写风格指南,并希望提出建议.相关主题可能是标识符样式(snake_cased_identifiers与camelCaseIdentifiers/PascalCaseIdentifiers),水平缩进,文档样式或垂直间距.

我故意以这种方式提出这个问题,以避免以下建议:

  • "没关系(没有理由提出索赔)"
  • "做社区已经为语言X推荐的东西."

我不希望支持不同方法的人之间发生火焰战争; 相反,我想知道实验研究对此事有何评论.(我不认为任何特定的研究必须完全'客观'或'中立'.)

为这个问题提供一个"更加软弱"的动机:人们在阅读文档和艺术(如听音乐)时欣赏代码中的空白.这些领域都非常强调空间的重要性.

所以,谢谢,我很高兴听到这些研究的内容.要明确的是,我并不排除风格和艺术的重要性 - 我实际上希望这些世界的智慧能够在实验研究中出现.

总之,如果可以,请触摸以下一项或多项:

  • 变量命名约定
  • 水平压痕
  • 水平对齐(将多条线上的等号对齐?)
  • 垂直间距

whitespace coding-style code-readability

16
推荐指数
2
解决办法
601
查看次数

JetBrains产品未在触摸栏上显示FN键

我有一个带触摸栏的Macbook,并希望设置触摸栏以始终显示JetBrains应用程序的FN键.我在首选项中完成了它,与其他应用程序相同.FN键在这些应用程序处于焦点时显示为默认值,但在JetBrains应用程序中则不显示.

macos jetbrains-ide intellij-idea macbookpro-touch-bar

15
推荐指数
4
解决办法
2954
查看次数

规则引擎可以实现什么?

使用规则引擎可以实现哪些目标?

rule-engine

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

使用clojure.test创建一个"慢"测试套件

我希望这个测试与每一个运行lein test:

(ns acker.core-test
  (:require [clojure.test :refer :all]
            [acker.core :refer :all]))

(deftest ackermann-test
  (testing "ack-1, ack-2, ack-3"
    (are [m n e]
         (= (ack-1 m n) (ack-2 m n) (ack-3 m n) e)
         0 0  1
         0 1  2
         0 2  3
         1 0  2
         1 1  3
         1 2  4
         2 0  3
         2 1  5
         2 2  7
         3 0  5
         3 1 13
         3 2 29)))
Run Code Online (Sandbox Code Playgroud)

我想ackermann-slow-test在我要求时才开始运行:

(deftest ackermann-slow-test
  (testing "ackermann (slow)"
    (are [m …
Run Code Online (Sandbox Code Playgroud)

testing clojure

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

使ElasticSearch集群变为绿色(OS X上的集群设置)

使用Homebrew在Mac OS X上安装了ElasticSearch.有用.该集群以"绿色" 健康开始.但是,在添加数据之后,它已经变为"黄色".

群集运行状况为:绿色,黄色或红色.在分片级别,红色状态表示特定分片未在群集中分配,黄色表示分配了主分片但副本不分配,绿色表示分配了所有分片.索引级别状态由最差的分片状态控制.群集状态由最差的索引状态控制.

所以,我的副本分片没有分配.我该如何分配它们?(我在大声思考.)

根据Shay的说法"我一直在获得黄色的集群健康状态":"分片机制不会在同一节点上分配分片及其副本,但它会在同一节点上分配不同的分片.因此,您需要两个分片节点获得绿色的集群状态."

所以,我需要启动第二个节点.我是这样做的:

cd ~/Library/LaunchAgents/
cp homebrew.mxcl.elasticsearch.plist homebrew.mxcl.elasticsearch-2.plist
# change line 8 to: homebrew.mxcl.elasticsearch-2
launchctl load -wF ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch-2.plist

现在我有"Korvus" http://localhost:9200/和"Iron Monger" http://localhost:9201/.活泉.但是,我没有看到任何迹象表明他们彼此了解.如何将它们相互连接/引入?

注意:我读过Zen Discovery,但感觉不到开悟.

更新2012-08-13美国东部时间下午11:30:

这是我的两个节点:

curl "http://localhost:9200/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch_david",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

curl "http://localhost:9201/_cluster/health?pretty=true"
{
  "cluster_name" : "elasticsearch_david", …
Run Code Online (Sandbox Code Playgroud)

macos elasticsearch

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

如何使用一次Fog调用在存储桶中创建S3对象?

以下是在目录(S3存储桶)中创建文件(S3对象)Fog演练:

connection = Fog::Storage.new({
  :provider                 => 'AWS',
  :aws_access_key_id        => YOUR_AWS_ACCESS_KEY_ID,
  :aws_secret_access_key    => YOUR_AWS_SECRET_ACCESS_KEY
})

directory = connection.directories.create(
  :key    => "fog-demo-#{Time.now.to_i}", # globally unique name
  :public => true
)

file = directory.files.create(
  :key    => 'resume.html',
  :body   => File.open("/path/to/my/resume.html"),
  :public => true
)
Run Code Online (Sandbox Code Playgroud)

但它看起来好像这需要2个API调用:

  1. connection.directories.create
  2. directory.files.create

如果我已经创建了目录(S3存储桶),如何创建只有一个Fog调用的文件(S3对象)?

ruby fog

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

ggplot scatterplot指向没有填充的点

我想制作一个散点图,其点没有填充(或等效,透明填充).

# generate some random data for the scatterplot
n <- 5
f <- factor(1:n)
df <- expand.grid(f1 = f, f2 = f)
df <- transform(df, v1 = round(10 * runif(n ** 2)))

# plot the scatterplot
ggplot(df) + geom_point(aes(x = f1, y = f2, size = v1, fill = NA))
Run Code Online (Sandbox Code Playgroud)

设置fillNA似乎是合乎逻辑,但没有奏效.我也试着NULL""无济于事.

r ggplot2

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

如何从我的Gmail帐户接收推送通知?

我想编写一个监控邮箱的应用程序(最好是Gmail邮箱).简而言之,我的问题是如何收听传入的电子邮件?我总是可以不停地发送电子邮件,但我担心这种情况不会很好.

iOS如何通过Gmail实现这一目标?我认为他们使用的是Exchange协议,但我不确定.有人知道怎么做吗?有解决方案已经做了类似的事情吗?我只需要一个钩子.

谢谢!

email gmail exchange-server push-notification

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

优雅地退出Clojure core.async循环杀死

我有一个顶级的core.async go循环.我希望它无限期地运行,至少直到我用CTRL-C或杀死或类似信号来阻止它.我目前正在使用java.lang.Runtime/addShutdownHook,如下所示:

(ns async-demo.core
  (:require [clojure.core.async :as async
             :refer [<! >! <!! timeout chan alt! go]]))
(defn run [] (go (loop [] (recur))))
(.addShutdownHook (Runtime/getRuntime) (Thread. #(println "SHUTDOWN")))
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

  1. 如果我启动REPL (run)然后它启动并在后台线程中运行.当我退出REPL时,我看不到所需的关机消息.

  2. 但是,当我运行时lein run,go循环立即退出并显示"SHUTDOWN".

这也不是我想要的.

我不一定希望找到适用于所有JVM的解决方案.我在Mac上开发并部署到Ubuntu,所以我想找到适合两者的解决方案:

  • Mac JVM:java版"1.7.0_45"Java(TM)SE运行时环境(版本1.7.0_45-b18)Java HotSpot(TM)64位服务器VM(版本24.45-b08,混合模式)

  • Ubuntu JVM:java版"1.7.0_25"OpenJDK运行时环境(IcedTea 2.3.10)(7u25-2.3.10-1ubuntu0.12.04.2)OpenJDK 64位服务器VM(版本23.7-b01,混合模式)

java signals clojure core.async

10
推荐指数
2
解决办法
6018
查看次数