小编Hud*_*don的帖子

我应该如何使用Meteor运行REST API?

我需要Meteor服务器来处理非来自应用程序客户端的非常简单的POST请求.有了Express,我就会做类似的事情app.post('/something', function....

Meteor中有相同的东西吗?如果没有,我该如何设置它,在is_server上下文中启动Express服务器?

node.js express meteor

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

你如何找到菜单贡献的locationURI?

当用户通过添加以下内容右键单击Project Explorer中的文件时,我设法将一个项添加到弹出菜单中:

  <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
         <command
               commandId="commands.mycmd"
               label="do foo"
               style="push">
         </command>
      </menuContribution>
   </extension>
Run Code Online (Sandbox Code Playgroud)

现在,我知道使用的唯一原因org.eclipse.ui.navigator.ProjectExplorer是因为这是其他人似乎正在做的事情(在Eclipse PDE文档中没有这个记录).问题是我在导航器和Package Explorer视图中也需要相同的功能(右键单击文件,你可以像在Project Explorer中那样执行"do foo".如何找到这两个中的locationURI视图(Package Explorer和Navigator)?

我已经尝试过 alt+shift+F2提示找到这样的信息,但是当您激活此模式时,Eclipse不允许您获取选项卡本身的信息.

eclipse eclipse-plugin

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

如何加速Emacs DocView模式?

我正在使用相当标准的安装:

  • Ubuntu 12.04 LTS(不到一周前安装)
  • GNU Emacs 24.1

当我在Emacs中打开PDF文件时,速度非常慢.有2-3秒的延迟使用时只需时,用鼠标,1-2秒的延迟滚动n,p,C-p,C-n,等.

这是一个20页的文档.对于像这样的50页文档,Emacs变得无法使用(持续冻结),因此文档大小问题会变得更糟.

我该如何解决这个问题?

emacs docview

7
推荐指数
2
解决办法
1920
查看次数

列表,数组和可变数组之间的Eratosthenes筛选的理想实现是什么?

在Haskell中,我在Rosetta Code页面上找到了三个简单的Eratosthenes Sieve实现.

现在我的问题是,应该在哪些情况下使用哪一个?

纠正我的初步推理也会有所帮助:

我假设列表一是Haskeller中最惯用且易于阅读的.但是这是正确的吗?我想知道它是否遇到了与另一个基于列表的筛子相同的问题,然后我学会了实际上没有实现算法:(
编辑:这里显示的是我知道有问题的基于列表的筛子,而不是来自RosettaCode的筛子,我贴在底部)

primes = sieve [2..] where
         sieve (p:x) = p : sieve [ n | n <- x, n `mod` p > 0 ]
Run Code Online (Sandbox Code Playgroud)

在性能方面,不可变阵列似乎是赢家.随着上限m2000000,这些时间是约:

  • 列表的1.3s
  • 数组为0.6s
  • 可变阵列的1.8s

所以我选择Array来表现.

当然,Mutable Array也很容易推理,因为我有更迫切的语言背景.我不知道为什么我会选择这个,如果我在Haskell编码,因为它既慢于其他人,也不是非惯用的.

此处复制的代码仅供参考:

列表:

primesTo m = 2 : eratos [3,5..m] where
eratos (p : xs) | p*p>m = p : xs
                | True  = p : eratos (xs `minus` [p*p, p*p+2*p..])

minus a@(x:xs) b@(y:ys) = case compare x …
Run Code Online (Sandbox Code Playgroud)

performance primes haskell sieve-of-eratosthenes

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

将CSV输出转换为数据帧的最快方法是什么?

我有一个程序输出我想要加载到数据框中的CSV数据行.我目前正在加载数据:

tmpFilename <- "tmp_file"
system(paste(procName, ">", tmpFilename), wait=TRUE)
myData <- read.csv(tmpFilename) # (I also pass in colClasses and nrows for efficiency)
Run Code Online (Sandbox Code Playgroud)

但是,我认为将输出重定向到文件只是为了从中读取它是低效的(程序吐出大约30MB,所以我想以最佳性能处理它).我以为textConnection会解决这个问题,所以我尝试过:

con <- textConnection(system(procName, intern=TRUE))
myData <- read.csv(con)
Run Code Online (Sandbox Code Playgroud)

然而,运行速度要慢得多,而第一种解决方案随着输入大小线性降低,textConnection解决方案的性能似乎呈指数级下降.最慢的部分是创造textConnection.read.csv这里实际上比第一个解决方案更快,因为它是从内存中读取的.

我的问题是,创建一个文件只是为了read.csv在它上面运行我的速度方面的最佳选择?有没有办法加快textConnection的创建?奖金:为什么创建textConnection这么慢?

r

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

什么是动态加载Data-URI方案图像的Angular方法?

我的服务器返回base64编码的图像,我想在某些事件上将其发送到客户端foo.我目前拥有它的方式是这样的:

index.html

...
<img src="{{data}}"></img>
...
Run Code Online (Sandbox Code Playgroud)

controller.js

...
$scope.foo = function (result) {
     $scope.data = result;
}
....
Run Code Online (Sandbox Code Playgroud)

foo发生时,result是一个base64编码的图像,并且该img元素开始渲染,如预期的那样.问题是,当页面最初加载时,/{{data}}将触发一个请求以获取图像和404. 当页面最初呈现时,如何避免此恶意请求被触发?如果不是我这样做的话,这样做的正确方法是什么?

data-uri angularjs

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

如何通过摇动将PHONY目标声明为默认操作?

我是在把一个Makefile成Shakefile的过程中,我不知道如何处理假make目标(clean,install,等).我尝试过类似的东西:

main = shake shakeOptions $ do
  want ["install"]
  "install" *> \_ -> do
    need ["mytarget"]
    system' "ln" ["-s", "mytarget", "linkname"]
Run Code Online (Sandbox Code Playgroud)

它成功创建符号链接,但报告错误"错误,规则"安装"无法构建文件:安装".

因此,如果没有"想要"动作,我如何声明我想要运行的默认目标是假的?

haskell shake-build-system

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

为什么我需要为发送到zmq.DEALER的每条消息收到两次?

我在ZMQ中设置了一个REP/DEALER连接,发现当REP向DEALER发送一个msg时,后者必须重新两次才能获得该消息.为什么是这样?

复制它的代码是来自此SO答案的代码的修改版本.他们的代码每个工人只收到一次,但我测试了这个,我只回到了一个"世界".我不得不接受四次以获得2个"世界",因此:

import zmq
import time
import sys
import threading

SOCKET_NAME = "tcp://127.0.0.1:8000"
#SOCKET_NAME = "inproc://mysocket"

def dealerRoutine(context):
    socket = context.socket(zmq.DEALER)
    socket.bind(SOCKET_NAME)
    time.sleep(1)
    socket.send("", zmq.SNDMORE)
    socket.send("hello")
    socket.send("", zmq.SNDMORE)
    socket.send("hello")
    print "first msg", socket.recv()
    print "second msg", socket.recv()
    print "third msg", socket.recv()
    print "fourth msg", socket.recv()
    socket.close()


def workerRoutine(context):
    socket = context.socket(zmq.REP)
    socket.connect(SOCKET_NAME)
    s = socket.recv()
    print "worker received", s
    socket.send("world")

context = zmq.Context()

workers = []
for i in range(0, 2):
    worker = threading.Thread(target=workerRoutine, args=([context]))
    workers.append(worker) 
    worker.start() …
Run Code Online (Sandbox Code Playgroud)

zeromq pyzmq

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