小编use*_*159的帖子

如何使用Akka演员使用可堆叠的特质模式?

我正在尝试使用可堆叠特征将Pub/Sub特性混合到其他akka actor中.

这是我想出的:

trait PubSubActor extends Actor {
  abstract override def receive = 
    super.receive orElse {
      case Subscribe(topic) => /* ... */
      case Publish(topic, msg) => /* ... */
    }
}

class MyActor extends Actor with PubSubActor {
  override def receive = {
    case SomeMessage(a, b, c) => /* ... */
  }
}
Run Code Online (Sandbox Code Playgroud)

此时,编译器会抛出一个错误:错误:重写方法在特征中接收MyActor ...方法接收需要`abstract override'修饰符.

你能解释一下为什么这不起作用吗?我怎样才能修复它以便它有效?

谢谢!

UPDATE

以下作品:

trait PubSubActor extends Actor {
  abstract override def receive = 
    super.receive orElse {
      case Subscribe(topic) => /* ... */
      case …
Run Code Online (Sandbox Code Playgroud)

scala traits akka

19
推荐指数
3
解决办法
6507
查看次数

SBT - 名称和身份证有什么区别?

我想知道项目的名称和ID之间的SBT是否存在差异.

我注意到示例build.sbt文件具有以下键:

name := "My Project"
Run Code Online (Sandbox Code Playgroud)

我注意到Build.scala文件:

Project(id = "My Project", base = file("."))
Run Code Online (Sandbox Code Playgroud)

有区别吗?两者应该相同还是不相关?它们用于什么?

谢谢!

scala build project sbt

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

灰烬视图高度

我试图让我的Ember应用程序的根视图具有完整(100%)高度,到目前为止没有成功.

我为什么需要那个?我有一个页脚,我想要与底部对齐,即使页面内容没有填满整个高度.为此,我有以下CSS:

.push {
  height: 60px;
}

.content {
  min-height: 100%;
  height: auto !important;
  height: 100%;
  margin: 0 auto -60px;
}
Run Code Online (Sandbox Code Playgroud)

和HTML(使用Twitter Bootstrap):

<body>
  <div class="navbar navbar-fixed-top"><!-- ... --></div>
  <div class="content">
    <div class="push"><!--//--></div>
    <div class="container">
  <!-- page content -->
    </div>
    <div class="push"><!--//--></div>
  </div>
  <footer>Copyright ... 2013</footer>
</body>
Run Code Online (Sandbox Code Playgroud)

没有Ember,这很好用.现在,介绍Ember:

<script type="text/x-handlebars" data-template-name="application">
  <div class="navbar navbar-fixed-top"><!-- ... --></div>
  <div class="content">
    <div class="push"><!--//--></div>
    <div class="container">
  {{outlet}}
    </div>
    <div class="push"><!--//--></div>
  </div>
  <footer>Copyright ... 2013</footer>
</script>
Run Code Online (Sandbox Code Playgroud)

现在它不再有效了!

该死的东西插入一个<div id="emberXYZ" class="ember-view">包含整个东西的东西,它本身就很好,除了div没有完整的高度,页脚只是在内容后面的页面中间挂起.

我搜索了一个解决方案,但找不到任何可以解决这个问题的东西.我的猜测是最简单的方法是让Ember将根视图设置为100%高度(似乎无法找到如何做到这一点),但也许有一些其他聪明的技巧可以实现我想要的.无论是什么解决方案,我都需要它至少与IE8兼容.

提前致谢!

html height footer ember.js

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

SBT Scaladoc配置

我正在尝试在SBT中配置Scaladoc,特别是标题,输出目录和类路径.

我设法通过在build.sbt中添加以下内容来定义标题:

scalacOptions in (Compile, doc) ++= Opts.doc.title("Scala-Tools")
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何更改doc输出目录.

我也无法弄清楚如何将jar添加到classpath.我想编辑类路径的原因是因为当我引用它的类时,scaladoc似乎没有得到标准的Scala库,即[[scala.Option]]导致警告"找不到任何链接的成员为"scala.Option"."

任何帮助,即使是一个示例SBT配置的形式将不胜感激!

我正在使用Scala 2.10-RC3和SBT 0.12.1.

scala classpath sbt output-directory scaladoc

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

Android相机预览 - 如何"冻结"相机?

我正在尝试构建一个Android应用程序来拍照,我需要冻结给定事件(即拍摄的照片)上的相机预览,并仅在另一个事件之后重新启动它.

换句话说,我想要的是视图显示相机在冻结事件发生之前看到的任何内容,然后冻结图像(即显示此事件发生时屏幕上显示的内容 - 就像拍摄照片一样)直到解冻事件发生.

现在,我正在使用带有SurfaceHolder.Callback的SurfaceView来执行此操作,我尝试使用PreviewCallback来冻结屏幕,但不幸的是,我找不到示例或教程,我真的被困在这点.

如果有人有关于如何完成这项工作的指南或指示,我将非常感谢帮助......

我正在粘贴下面代码的相关部分:

公共类CustomCameraView扩展了SurfaceView {

Camera camera;
SurfaceHolder previewHolder;

//Callback for the surfaceholder
SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() {
    public void surfaceCreated(SurfaceHolder holder) {
        camera=Camera.open();

        try 
        {
            camera.setPreviewDisplay(previewHolder);
        }
        catch (Throwable t) {

        }
    }

    public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h)
    {
        Parameters params = camera.getParameters();
        params.setPictureFormat(PixelFormat.JPEG);
            camera.setParameters(params);
            camera.startPreview();
    }

    public void surfaceDestroyed(SurfaceHolder arg0)
    {
        camera.stopPreview();
        camera.release();
    }
};
public CustomCameraView(Context ctx)
{
    super(ctx);

    previewHolder = this.getHolder();
        previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        previewHolder.addCallback(surfaceHolderListener);
        setBackgroundColor(Color.TRANSPARENT);
}
public …
Run Code Online (Sandbox Code Playgroud)

camera android image freeze preview

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

Akka Streams Websocket接线

我正试图找出使用akka-http和akka-streams实现真正的websocket应用程序的最佳方法.我最想要的是简单性,我现在还没有得到它.

假设您有一个相当复杂的管道,需要区分多个请求,有时会将请求发送给actor进行处理,有时会发出mongo查询并返回响应,有时会在REST API上执行PUT等.

与那里的简单聊天应用程序示例不同,出现至少3个似乎没有标准解决方案的问题:

  • 有条件地跳过响应,例如,因为客户端不期望该请求将收到响应.如果我使用从消息到消息的典型流程,一旦请求到达其目标,我需要阻止它进一步传播回websocket.它可以使用特殊的过滤器(涉及一些痛苦)或使用各种其他方式(例如,使用akka流有条件地跳过流)来完成,但这增加了许多样板和复杂性.理想情况下,我希望能够插入跳过其他所有内容的"跳过"消息.

  • 将传入消息路由到适当的位置(例如,actor,mongo).再一次,我可以找到涉及大量样板的解决方案(例如,在不处理此类请求的分支处进行广播和过滤).理想情况下,我应该能够定义如下内容:如果消息是X,则将其发送到那里,如果消息是Y,则将其发送到那里等.

  • 将错误传播回客户端.非常类似于上面描述的路由问题.例如,如果JSON解析失败,我需要添加一个单独的路径(广播+合并),我发送错误消息,但如果在下一阶段发生错误,我甚至无法轻易地重用相同的路径,我想将该错误传播给用户.理想情况下,我应该有一个单独的错误处理路径,可以在流中的任意点使用,完全绕过流的其余部分并返回到客户端.

目前,我有这个非常复杂的图表,跨越15行,路径经过> 20个不同的阶段,我真的很担心要保持这个解决方案的复杂性.DSL在这个尺寸上几乎是不可读的.我当然可以更好地模块化,但这对于一些应该简单得多的事情来说就像是一个疯狂的麻烦.

我错过了什么吗?考虑到akka-streams这样的任务,我是疯了吗?任何可以让我控制所有复杂性的想法或代码示例?

提前致谢!

modularity scala websocket akka akka-stream

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

将包导入为另一个

假设我有一个包含一堆案例类的Scala项目com.example.a.b.c.我想将所有这些类导入到一个包中com.example.c(其中包含一些非冲突的case类),以便在我的项目中的任何其他地方,我只需要import com.example.c._使用来自com.example.c和的每个case类com.example.a.b.c.

我怎样才能做到这一点?

import scala package

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

Playframework 2.1预编译ember把手

我正在尝试为PlayFramework 2.1编写一个SBT插件,它可以预编译位于app/assets/templates中的把手模板.我当然会在完成后分享这个插件.我发现这个HOWTO http://eng.netwallet.com/2012/04/25/emberhandlebars-template-precompilation-with-play/这是一个有点过时,但它是适应它玩没问题!2.1.

然后我尝试编译一个简单的模板文件,但SBT失败了以下内容:

ember: processing template test

[error] /.../templates/test.handlebars: Compilation error[unexpected exception during Ember compilation (file=/.../templates/test.handlebars, options=List(), ember=ember-1.0.0-pre.4.js): org.mozilla.javascript.EvaluatorException: missing name after . operator (ember-1.0.0-pre.4.js#3309)]

[error] (MyProject/*:play-copy-assets) @6dap83075: Compilation error in /.../templates/test.handlebars:null

[error] (MyProject/compile:resources) @6dap83075: Compilation error in /.../templates/test.handlebars:null
Run Code Online (Sandbox Code Playgroud)

第3309行的ember-1.0.0-pre.4.js有一个volatile关键字,显然是在Rhino中保留的.

我远非犀牛专家,这就是为什么我想知道是否有人知道如何解决这个问题?我现在不是在寻找5*解决方案.任何解决方案(即使是使用自定义ember.js的快速和肮脏的黑客)都有合理的机会为大多数简单的把手模板工作都可以工作,我们担心一旦功能出现并且SBT插件出来就抛光它.

提前致谢!

rhino precompile handlebars.js playframework-2.0 ember.js

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

玩!框架 - 使用Build.scala构建build.sbt

我正在尝试将各种设置与我的Play中的构建定义分开!2.1申请.

我在build.sbt中定义了一些设置,如下所示:

name := "My Project"
version := 1.0
Run Code Online (Sandbox Code Playgroud)

如何在Build.scala中重用这些值?

object ApplicationBuild extends Build {

  val main = 
    // Doesn't compile since name and version are SettingKeys, not Strings
    play.Project(name, version).settings(
      // ...
    )

}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

scala sbt playframework

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

新的Relic API-实例和主机之间的区别?

关于New Relic API,参阅https://github.com/newrelic/newrelic_api,我想知道主机和实例之间的区别是什么。

基本上,我知道什么是应用程序,什么是服务器(显然)。我假设实例是应用程序的实例,即,如果我的应用程序在Heroku上运行,则每个实例将对应于一个运行我的应用程序的dyno。但是,什么是主机?主机和实例之间有什么区别?

谢谢,

-比利

更新

感谢您的回答!

因此,如果我理解正确,通常情况下,应用程序和实例之间的映射是1-to-n,即每个应用程序可以有1个或多个实例。同样,实例和主机之间的映射是n到m,即每个实例最多可以在一个主机上运行(在任何给定时间),但是实例分布在可用主机之间。同样,主机在服务器之间分布(例如,一对多)。是吗 (很抱歉,这听起来像是我说的是很明显的话,但是我对他们在New Relic上使用的术语不熟悉)

如果以上正确,如何从API获取实例-主机和主机-服务器映射?我可以看到如何获取应用程序-实例和应用程序-主机,但是其他两个呢?

再次感谢您的帮助!

api hosts instances newrelic

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