小编Uli*_*ler的帖子

如何在守护进程模式下运行Warp?

我一直在研究使用Haskell Warp构建的像素服务器,并且一直在努力研究如何在守护模式下运行它.

Warp工作得很好 - 我可以使用runNetwork.Wai.Handler.Warp来提供HTTP,runTLS来自Network.Wai.Handler.WarpTLS来提供HTTPS,我可以通过生成一个新线程来运行它们:

startBoth :: Config -> IO ()
startBoth config = do
  _ <- forkIO $ startHTTPS config
  startHTTP config
Run Code Online (Sandbox Code Playgroud)

我的问题是弄清楚如何使用MissingH(System.Daemon)中的detachDaemon让我的服务器分离并在Ubuntu的后台运行.

在我的Main.h中我尝试添加这样的detachDaemon动作:

main :: IO ()
main =
  detachDaemon >> cmdArgs options >>= getConfig . optionsConfig >>= start
Run Code Online (Sandbox Code Playgroud)

但程序然后只是默默地退出而没有错误,并且在我运行时没有任何显示ps -ef | grep snowhuskyd.

我应该如何使用detachDaemon- 甚至可以使用Warp?我找不到detachDaemon在网上使用的任何一个例子- 任何帮助都会感激不尽!

haskell haskell-warp

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

使用NumPy查找条件为True的范围

想象一下,我有一个numpy数组,我需要找到条件为True的跨度/范围.例如,我有以下数组,其中我试图找到项大于1的跨度:

[0, 0, 0, 2, 2, 0, 2, 2, 2, 0]
Run Code Online (Sandbox Code Playgroud)

我需要找到索引(开始,停止):

(3, 5) 
(6, 9)
Run Code Online (Sandbox Code Playgroud)

我能够实现的最快的事情是制作一个布尔数组:

truth = data > threshold
Run Code Online (Sandbox Code Playgroud)

然后使用numpy.argmin和循环遍历数组并numpy.argmax查找开始和结束位置.

    pos = 0
    truth = container[RATIO,:] > threshold

    while pos < len(truth):
        start = numpy.argmax(truth[pos:]) + pos + offset
        end = numpy.argmin(truth[start:]) + start  + offset
        if not truth[start]:#nothing more
            break
        if start == end:#goes to the end
            end = len(truth)
        pos = end
Run Code Online (Sandbox Code Playgroud)

但是对于数组中的数十亿个位置来说这已经太慢了,而且我发现的跨度通常只是连续几个位置.有谁知道找到这些跨度的更快的方法?

python arrays search numpy

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

在Haskell中读取YAML对象列表

假设这个YAML(保存在一个名为的文件中users.yml):

- id: 1
  name: Unknown user
  reputation: 0

- id: 2
  name: Foo bar
  reputation: 4
Run Code Online (Sandbox Code Playgroud)

而这个Haskell data类型:

data MyUser = MyUser {id :: Int,
                      name :: String,
                      reputation :: Int}
                      deriving (Show)
Run Code Online (Sandbox Code Playgroud)

我想使用yaml库将YAML读成a [MyUser].我怎样才能做到这一点?

parsing yaml haskell

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

解决Network.HTTP'用户错误(不支持https)'

使用以下命令运行此Haskell程序时runghc:

import Network.HTTP

main = simpleHTTP (getRequest "https://stackoverflow.com")
       >>= getResponseBody >>= putStrLn
Run Code Online (Sandbox Code Playgroud)

我收到错误消息

printso.hs: user error (https not supported)
Run Code Online (Sandbox Code Playgroud)

我不想切换到未加密的HTTP - 我如何使用Network.HTTPSSL/TLS?

https haskell

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

如何在PDU模式下通过GSM调制解调器发送短信?

我想以PDU模式发送短信.我检查了我的调制解调器的规格,它支持PDU模式.

我开发了PDU编码器和解码器,但现在我不知道如何将数据发送到我的调制解调器.我试过这些AT命令:

AT

AT+CMGF=0
Run Code Online (Sandbox Code Playgroud)

发送这些命令后,我发送了这样的PDU数据:

AT+CMGW="16079189390500410011000C918939050000000000AA02E834" 
Run Code Online (Sandbox Code Playgroud)

我已使用此在线工具检查了此PDU的正确性:

http://www.twit88.com/home/utility/sms-pdu-encode-decode

但通过AT命令发送后,调制解调器挂起.

这是发送SMS PDU的正确方法吗?我在Google上搜索过,无法找到有用的信息.

modem gsm

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

Luhn公式的实现

我试图在Python中实现Luhn公式,这是我的代码:

import sys


def luhn_check(number):
    if number.isdigit():
        last_digit = int(str(number)[-1])
        reverse_sequence = list(int(d) for d in str(int(number[-2::-1])))

        for i in range(0, len(reverse_sequence), 2):
            reverse_sequence[i] *= 2

        for i in range(len(reverse_sequence)):
            if reverse_sequence[i] > 9:
                reverse_sequence[i] -= 9

        sum_of_digits = 0
        for i in range(len(reverse_sequence)):
            sum_of_digits += reverse_sequence[i]

        result = divmod(sum_of_digits, 10)

        if result == last_digit:
            print("[VALID] %s" % number)
        else:
            print("[INVALID] %s" % number)
        quit()

    print("[ERROR] \" %s \" is not a valid sequence." % number)
    quit()


def …
Run Code Online (Sandbox Code Playgroud)

python math checksum luhn

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

apache camel - 打包一个可执行的jar

我正在使用maven来构建我的jar(Intellij IDEA IDE).它是使用Apache Camel构建的应用程序.我的pom.xml的摘录:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>MainDriver</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我能够从maven中检索一个jar文件但是在运行后我得到的是NoClassDeFFound错误.

最后,我尝试使用one-jar插件(http://one-jar.sourceforge.net/).而且我已经开始工作了.我的问题是,如果不使用一个罐子,我可以实现相同的目标吗?我不喜欢一个罐子的包装,它的作用是当你从一个罐子中提取罐子时,你会发现你的app罐子,所以你需要在你的罐子上做一个额外的提取来获得到您的课程/资源.我的配置文件在资源上,有时我需要修改它.

谢谢!

executable-jar apache-camel maven-plugin maven-3 maven

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

为什么我们不应该在嵌入式系统中拥有不同大小的动态分配内存

我在嵌入式系统中听说过,我们应该使用一些预先分配的固定大小的内存块(比如好友内存系统?).有人能给我一个详细的解释原因吗?谢谢,

embedded memory-management dynamic-memory-allocation static-memory-allocation

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

JUNG图顶点上的鼠标事件

我用JUNG构建了图形,但我不确定如何将鼠标动作监听器添加到图形的顶点.

下面是我认为与问题最相关的代码示例部分.

layout = new FRLayout2<GraphNode, GraphEdge>(graph);
visualizationViewer = new VisualizationViewer<GraphNode, GraphEdge>(layout, new Dimension(1000, 700));

visualizationViewer.getModel().getRelaxer().setSleepTime(500);
visualizationViewer.setGraphMouse(new DefaultModalGraphMouse<GraphNode, String>());
        visualizationViewer.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.AUTO);
visualizationViewer.setForeground(Color.black);
Run Code Online (Sandbox Code Playgroud)

特别是,我想检测图形顶点的单击和双击并对它们进行操作.

注意:我看过几个旧的SO链接,但没有一个答案似乎对我有所帮助.如果有人可以给我伪代码或指向正确的方向,那将非常有帮助.

java mouseevent jung2

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

从列表中取出直到遇到重复

在Haskell中,takeWhile允许从一个(可能是无限的)列表中获取条目,直到某个条件不成立.

但是,此条件不能取决于列表的先前条目.

take在我遇到本例中概述的第一个副本之前,如何从(可能是无限的)列表中输入条目?

*Main> takeUntilDuplicate [1,2,3,4,5,1,2,3,4]
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

haskell

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