小编ssc*_*zio的帖子

在声明案例类时我应该使用final修饰符吗?

根据scala-wartremover静态分析工具,我必须将"final"放在我创建的每个case类的前面:错误消息说"case classes必须是final".

根据scapegoat(Scala的另一个静态分析工具)而不是我不应该(错误消息:"案例类的冗余最终修饰符")

谁是对的,为什么?

static-analysis scala case-class scala-wartremover

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

在Redis中找到最大对象的最简单方法是什么?

我有一个20GB + rdb转储生产.我怀疑有一组特定的钥匙膨胀它.我想有办法总是发现静态转储分析中的前100个最大的对象,或者问它到服务器本身,顺便说一下,它有7M对象.

像rdbtools这样的转储分析工具对此(我认为)真正常见的用例没有帮助!

我正在考虑编写一个脚本并使用"redis-cli调试对象"迭代整个键集,但我觉得必须有一些我缺少的工具.

redis

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

为什么Future.sequence并行而不是连续执行我的未来?

" 序列 " 一词意味着一个接一个的一系列动作.

object Test {

  def main(args: Array[String]) {

    def producer() = {
      val list = Seq(
          future { println("startFirst"); Thread.sleep(3000); println("stopFirst") }, 
          future { println("startSecond"); Thread.sleep(1000); println("stopSecond") }
      )
      Future.sequence(list)
    }

   Await.result(producer, Duration.Inf)
  }
}
Run Code Online (Sandbox Code Playgroud)

因此我希望打印这个程序: startFirst stopFirst startSecond stopSecond

甚至: startSecond stopSecond startFirst stopFirst

但不是(因为它发生): startFirst startSecond stopSecond stopFirst

为什么不调用此方法Future.parallel()?我应该用什么来保证期货的所有 Seq期货都是连续触发的(而不是并行的)?

scala future

35
推荐指数
3
解决办法
4万
查看次数

如何在不首先克隆整个repo的情况下将文件添加到远程Git repo(Github)

这个Git问题与另一个关于SVN的问题非常相似.

我有一个充满大文件的repo,我需要添加一个文件.这在SVN中非常容易.

svn import -m "Adding just a file" file_name http://path/to/svn/repo/file_name

如何在Git中实现这个简单的任务?

svn git github

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

使用Cloudfront以只读方式公开ElasticSearch REST API(GET/HEAD)

我想让我的客户直接与ElasticSearch REST API对话,显然阻止他们执行任何数据或配置更改.

我看了一下ElasticSearch REST接口,我注意到了这种模式:HTTP GET请求非常安全(无害查询和集群状态).

所以我认为我可以将Cloudfront用作仅允许GET/HEAD方法的CDN /代理(您可以将其限制在主配置中).

到目前为止一切都很好,一切都已成立.但事情不起作用,因为我需要向全世界开放我的EC2安全组才能从Cloudfront访问!我真不想要这个!

当我将EC2与RDS一起使用时,我可以简单地允许访问RDS安全组中的EC2安全组.为什么我不能使用CloudFront执行此操作?或者我可以吗?

想法?

编辑:它没有记录,但ES接受facets查询,它涉及(JSON)主体,不仅使用POST,还使用GET.这通过不忽略GET请求()的主体来简单地破坏HTTP建议(对于RFC3616 ).这是因为,正如所指出的那样,直接暴露ES REST接口可能导致使用复杂查询的轻松DOS攻击.我仍然相信,少一个代理仍然值得.

编辑:我另一个选项是跳过CloudFront的并增加了安全层作为ElasticSearch插件,如图点击这里

rest http amazon-web-services elasticsearch amazon-cloudfront

15
推荐指数
2
解决办法
4373
查看次数

Postgres 9.5+:UPSERT返回更新和插入行的计数

我得到了一个典型的例子:

 INSERT INTO user_logins (username, logins)
 VALUES ('Naomi',1),('James',1)
 ON CONFLICT (username)
 DO UPDATE SET logins = user_logins.logins + EXCLUDED.logins;
Run Code Online (Sandbox Code Playgroud)

但现在我还需要知道:

  1. 插入了多少行
  2. 由于存在,已更新了多少行
  3. 由于约束,无法插入多少行
  4. 如果最后一行不遵守约束,先前插入/更新的行是否会保留在DB中?

postgresql upsert

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

Quartz没有触发简单的触发器

这应该是非常直接的,但我看不到任何工作被执行.我在任务的execute()方法上有一个断点,没有任何线程到达那里.我没有弄到什么问题.

工作

class Printer implements Job{
    public Printer(){
        System.out.println("created printer");
    }

    @Override
    public void execute(JobExecutionContext context)
            throws JobExecutionException {
        System.out.println("hi" + context.getFireTime());
    }

}
Run Code Online (Sandbox Code Playgroud)

主要课程

class MyClass {
      public static void main(String[] args) throws Throwable {
            Scheduler s = StdSchedulerFactory.getDefaultScheduler();
            JobDetail job = newJob(Printer.class).build();
            CronTrigger trigger = 
                    newTrigger()
                    .withIdentity("a", "t")
                    .withSchedule(cronSchedule("0/5 * * * * ?").inTimeZone(TimeZone.getDefault()))
                    .forJob(job).build();
            s.scheduleJob(job, trigger);

// This prints the right date!

            System.out.println(trigger.getNextFireTime()); 
            s.start();
        }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我发现我没有quartz.property文件,所以有可能没有创建石英线程池.因此,正如文档中所读,我使用StdSchedulerFactory替换了以下代码:

DirectSchedulerFactory.getInstance().createVolatileScheduler(10);
Scheduler s = DirectSchedulerFactory.getInstance().getScheduler();
Run Code Online (Sandbox Code Playgroud)

你猜怎么着?还没有运气.同样的效果.应用程序保持活着,触发不触发.

java cron quartz-scheduler

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

在Haskell中从左到右链接方法(而不是从右到左)

我来自斯卡拉.所以我经常这样做:

println((1 to 10).filter(_ < 3).map(x => x*x))
Run Code Online (Sandbox Code Playgroud)

在Haskell中,在我发现我可以使用$和删除所有嵌套的括号之后.,我最近发现自己写了:

putStrLn . show . map (**2) . filter (< 3) $ [1..10] 
Run Code Online (Sandbox Code Playgroud)

现在,这有效,但代码从右向左阅读,除非我转向阿拉伯语,否则我很难理解.

有没有其他技巧让我从左到右连接功能?或者这只是Haskell惯用的方式?

haskell scala function-composition

9
推荐指数
2
解决办法
550
查看次数

将Scala转换为golang是否可行/有用?

最近发布了Scala native,但他们使用的垃圾收集器(目前)非常简陋,并且不适合严肃使用.

所以我想知道:为什么不将Scala转换为Go(一个scala.js)?它将是一个快速,可移植的运行时.他们的GC越来越好了.更不用说伟大的并发模型的继承:渠道和goroutines.

  • 那么为什么scala-native选择使用LLVM这么低级呢?
  • golang编译器有什么特点?

scala go scala-native

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

什么是最好的Kibana多租户免费开源项目?

我正在尝试为Kibana添加基于角色的访问控制,以便为不同类型的用户提供不同的权限和仪表板,我找到了这些项目:

  • Elastic Shield插件
  • 搜索Guard Kibana多租户模块
  • Elasticsearch只读Rest插件
  • Kibana插件自己的家

我发现的是:

  • Elastic Shield(现在称为X-Pack)是最好的,但不幸的是它只有30天免费试用.

  • 搜索保护模块有点复杂,它可以完成这项工作,但它不是免费的商业用途,不适合我的情况.

  • ReadonlyREST插件允许您定义哪个用户读取哪些数据,他们的Enterprise Kibana插件(非免费)也允许您为组或用户分配kibana索引.

  • Kibana Plugin Own Home是一种解决方案,因为它为不同的用户定义了不同的kibana索引,这是不切实际的.

如果您知道上述项目的任何其他项目或任何解决方法满足我的要求,我将非常感激.

user-roles elasticsearch kibana

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