小编Hug*_*ira的帖子

Git与Mercurial存储库的互操作性

我在Mac上使用GIT.说够了.我有工具,我有经验.我想继续使用它.这里没有战争......

问题始终在于互操作性.大多数人都使用SVN,这对我来说很棒.Git SVN开箱即用,是一个没有多余装饰的解决方案.人们可以继续愉快地使用SVN,我不会丢失我的工作流程,也不会丢失我的工具.

现在......有些人和Mercurial一起来了.对他们来说很好:他们有他们的理由.但我找不到任何GIT HG开箱即用.我不想切换到HG,但我仍然需要与他们的存储库进行互操作.

你们中的任何人都知道一个简单的解决方案吗?

git version-control mercurial interop dvcs

194
推荐指数
7
解决办法
4万
查看次数

编译C#Lambda表达式性能

考虑以下对集合的简单操作:

static List<int> x = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var result = x.Where(i => i % 2 == 0).Where(i => i > 5);
Run Code Online (Sandbox Code Playgroud)

现在让我们使用表达式.以下代码大致相当:

static void UsingLambda() {
    Func<IEnumerable<int>, IEnumerable<int>> lambda = l => l.Where(i => i % 2 == 0).Where(i => i > 5);
    var t0 = DateTime.Now.Ticks;
    for (int j = 1; j < MAX; j++) 
        var sss = lambda(x).ToList();

    var tn = DateTime.Now.Ticks;
    Console.WriteLine("Using lambda: {0}", tn …
Run Code Online (Sandbox Code Playgroud)

c# performance lambda expression-trees

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

Scala中Currying vs Partial Application的实用性(如实际应用)

我试图了解在Scala中讨论部分应用程序的优点.请考虑以下代码:

  def sum(f: Int => Int) = (a: Int, b: Int) => f(a) + f(b)

  def sum2(f: Int => Int, a: Int, b: Int): Int = f(a) + f(b)

  def sum3(f: Int => Int)(a: Int, b: Int): Int = f(a) + f(b)

  val ho = sum({identity})
  val partial = sum2({ identity }, _, _)
  val currying = sum3({ identity })

  val a = currying(2, 2)
  val b = partial(2, 2)
  val c = ho(2, 2)
Run Code Online (Sandbox Code Playgroud)

那么,如果我可以轻松计算部分应用的功能,那么currying的优点是什么?

scala currying partial-application

52
推荐指数
2
解决办法
7030
查看次数

发现集群中的Akka演员

我最近一直试图围绕Akka和基于演员的系统的概念.虽然我对Akka基本原理有很好的理解,但现在我仍然在集群和远程演员方面遇到一些问题.

我将尝试使用Play Framework 2.0附带WebSocket聊天示例来说明问题:有一个持有WebSockets并保留当前连接用户列表的actor.演员基本上在技术上和逻辑上代表聊天室.只要在单个服务器上运行单个聊天室,这就完美无缺.

现在,我正在尝试理解当我们讨论在服务器群集上运行的许多动态聊天室(可以随时打开/关闭的新房间)时添加或删除单个节点时如何扩展此示例根据目前的需求).在这种情况下,用户A可以连接到服务器1,而用户B连接到服务器2.两者可能在同一个聊天室中进行通话.在每个服务器上仍然会有一个actor(对于每个聊天室?),它保存WebSocket实例以接收和发布事件(消息)给正确的用户.但从逻辑上讲,服务器1或服务器2上只应有一个聊天室角色,其中包含当前连接用户(或类似任务)的列表.

您将如何实现这一目标,最好是在"纯akka"中,而不添加ZeroMQ或RabbitMQ等额外的消息传递系统?

这是我到目前为止所提出的,请告诉我这是否有意义:

  1. 用户A连接到服务器1,并且分配了一个保存其WebSocket的actor.
  2. 演员检查(使用Router?EventBus?还有其他什么?)是否在任何连接的集群节点上存在活动聊天室的"聊天室演员".因为它不会以某种方式请求创建新的聊天室演员,并且将向该演员发送和接收未来的聊天消息.
  3. 用户B在服务器2上连接,并且也为他的WebSocket分配了一个actor.
  4. 它还检查所请求的聊天室的actor是否存在于某处并在服务器1上找到它.
  5. 服务器1上的聊天室演员现在充当给定聊天室的集线器,向所有"连接的"聊天成员演员发送消息并分发传入的聊天室.

如果服务器2出现故障,则必须以某种方式在服务器2上重新创建/移动聊天室角色,尽管这不是我现在主要关注的问题.我最想知道演员如何在各种基本上独立的机器上进行动态发现,可以使用Akka的工具集来完成.

我一直在看Akka的文档很长一段时间了,所以也许我错过了这里显而易见的.如果是的话,请赐教:-)

akka playframework playframework-2.0 akka-cluster

43
推荐指数
3
解决办法
7032
查看次数

在scala lambda函数中使用_

任何人都可以解释我为什么这样做:

a.mapValues(_.size)
Run Code Online (Sandbox Code Playgroud)

代替

a.mapValues(x => x.size)
Run Code Online (Sandbox Code Playgroud)

但我不能这样做

a.groupBy(_)
Run Code Online (Sandbox Code Playgroud)

代替

a.groupBy(x => x)
Run Code Online (Sandbox Code Playgroud)

scala

37
推荐指数
2
解决办法
6117
查看次数

Scala中的真实世界函数式编程

SOOOO ...

Semigroups,Monoids,Monads,Functors,Lenses,Catamorphisms,Anamorphisms,Arrows ......这些听起来都很好,经过一两次(或十次)运动后,你可以掌握它们的本质.而且Scalaz,你可以免费获得它们......

然而,就现实世界的编程而言,我发现自己很难找到这些概念的用法.是的,当然我总是在网上找到一个人在Scala上使用Monads for IO或Lenses,但是......仍然......

我试图找到的是模式的"规定"线.类似的事情:"在这里,你试图解决这个问题,解决这个问题的一个好方法是用这种方式使用镜头!"

建议?


更新:沿着这些方面,有一两本书的内容会很棒(感谢Paul):Java核心库中的GoF设计模式示例

design-patterns functional-programming scala scalaz

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

Scala为JVM 1.7发送字节码的优点

根据Scala 2.10,与1.6的默认发射相比,JVM 1.7发射字节码有什么优势(如果有的话)?

jvm scala bytecode

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

如何使用Instruments并在Command Lines应用程序中显示控制台

我在OSX上使用Xcode来开发命令行C应用程序.我还想使用Instruments来分析和查找内存泄漏.

但是,在从仪器内启动应用程序时,我找不到显示控制台的方法.我也无法附加到正在运行的命令行进程(它退出时出错):

这是一个示例代码:

#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <setjmp.h>

static sigjmp_buf jmpbuf;

void handler(int sig) {
    char c[BUFSIZ];

    printf ("Got signal %d\n", sig);
    printf ("Deseja sair? (s/n) ");

    fgets(c, sizeof(c), stdin);

    if(c[0] == 's') {
        exit(0);
    } else {
        siglongjmp(jmpbuf, 1);
    }
}

int main(void) {
    char buf[BUFSIZ];

    signal(SIGINT, handler);

    sigsetjmp(jmpbuf, 1);

    while(1) {
        printf(">>>");
        fgets(buf, sizeof(buf), stdin);
        printf ("Introduziu: %s\n", buf);
    }

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

这是我启动Instruments后尝试连接到xcode中正在运行的进程时出现的错误:

[Switching to process 1475]
[Switching to process 1475]
Error while running hook_stop: …
Run Code Online (Sandbox Code Playgroud)

c debugging macos xcode instruments

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

使用Scala/Akka在JVM中进行高频交易

让我们想象一下Java中假设的HFT系统,需要(非常)低延迟,许多短暂的小对象在某种程度上是由于不变性(Scala?),每秒数千个连接,以及在事件驱动架构(akka和amqp?).

对于那里的专家来说,(假设)对JVM 7的最佳调整是什么?什么类型的代码会让它开心?Scala和Akka会为这种系统做好准备吗?

注意:已经有一些类似的问题,像这样的一个,但我还没有找到一个覆盖斯卡拉(它有自己的特质足迹在JVM).

performance jvm scala low-latency akka

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

在Akka接收方法中在Scala中组合特征行为

考虑以下两个特征:

trait Poked extends Actor {
  override def receive = {
    case Poke(port, x) => ReceivePoke(port, x)
  }

  def ReceivePoke(port: String, x: Any)
}

trait Peeked extends Actor {
  override def receive = {
    case Peek(port) => ReceivePeek(port)
  }

  def ReceivePeek(port: String)
}
Run Code Online (Sandbox Code Playgroud)

现在考虑我可以创建一个实现两个特征的新Actor:

val peekedpoked = actorRef(new Actor extends Poked with Peeked)
Run Code Online (Sandbox Code Playgroud)

如何撰写接收处理程序?即,接收器应该是类似下面的代码,虽然"自动生成"(即,所有特征应该组成):

def receive = (Poked.receive: Receive) orElse (Peeked.receive: Receive) orElse ...
Run Code Online (Sandbox Code Playgroud)

scala composition akka

20
推荐指数
2
解决办法
4236
查看次数