小编Eri*_*lun的帖子

Javascript中的Prolog系统

Javascript似乎成为其他编程语言的实现语言.文章 轻量级编译(C)LP到JavaScript.ICLP 2012 引起了我的注意.

在Web上用Javascript编写的Prolog系统有很多概念验证原型.

什么是当前的,积极维护的,最好是用Javascript编写的符合ISO标准的Prolog系统?

javascript compilation prolog transpiler iso-prolog

18
推荐指数
1
解决办法
5892
查看次数

java嵌入式库磁盘键值数据库

认为我正在寻找的是一个无SQL,嵌入式磁盘,在磁盘上(即非内存中)数据库,可以从java访问(最好在我的JVM实例中运行).这不是一个真正的数据库,我很想自己动手.基本上我正在寻找"我们应该把它保存在内存中还是放在磁盘上"的数据库部分.

我们的模型已增长到几千兆字节.现在这都是在内存中完成的,这意味着我们正在推动JVM达到几千兆字节.它目前全部存储在一个平面XML文件中,使用xstream进行序列化和反序列化,并使用内置的gzip库中的Java进行压缩.当我们的模型保持在100MB以下时,这种方法运行良好,但现在它的大于它成为一个问题.

松散地说,模型可以分解为

  • 项目
    1. 配置组件(有向非循环图),并不是所有数据库友好的
    2. 十几个"实验"结构的列表
      • 每个都包含大约十二个"运行模型"结构的列表.
        1. 每个运行模型包含数百兆的数据.一旦编写,他们永远不会编辑.

我想做的是有一些符合guid - > run-model的地图界面的东西.这个迷你数据库将保留这些对象的平面表.在我们的实验模型中,我们将使用guid列表替换运行模型列表,并在应用程序层添加对此映射的get调用,这将把它从磁盘中拉出并进入内存.

这意味着我们可以使用XML(我非常满意)保持程序的配置,并在DBMS中保留一个大数据表,这将使我们不会消耗多GB的内存.在程序启动和退出时,我可以从存档格式加载和卸载我们模型的两个部分(XML中的配置部分和数据库格式的运行模型).

我对这一点感觉很好,并且认为我可以用一些X-Stream的XML检查策略和自定义地图实现来实现它,但是在我的脑海中有一种声音告诉我我应该找到一个库来代替.

我应该自己动手还是有一个足够小的数据库来满足这个要求?

多谢你们,

-Geoff

java database performance embedded-database nosql

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

/var/run/docker.sock:没有这样的文件或目录.您是否尝试在没有TLS的情况下连接到启用TLS的守护程序?

当我尝试运行docker info时,我对docker非常新,它给了我跟随错误.

$ docker info
FATA[0000] Get http:///var/run/docker.sock/v1.17/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS? 
Run Code Online (Sandbox Code Playgroud)

我正在使用ubuntu 14.04.我按照https://docs.docker.com/installation/ubuntulinux/#installing-docker-on-ubuntu上提到的安装说明进行操作

但我仍然得到错误.我怎样才能解决这个问题?

ubuntu docker boot2docker

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

在haskell中加载热代码

可以用Haskell实现热代码交换吗?我正在阅读Erlang引起了我的兴趣,我想将这些功能与Haskell一起使用.

haskell

17
推荐指数
2
解决办法
2677
查看次数

什么时候可以从Servlet抛出ServletException?

ServletException过去,当Servlet中的某些东西出现问题时,我一直在扔s,大多只是将异常包装进去ServletException.

现在我认为实际上最好不要抛出一个ServletException但是要回应response.sendError(sc)并使用正确的HTTP状态代码.

如果我不能使用reponse.sendError(IOException)发送错误,我将其包装成IOExceptiona ServletException.

以上是更好的回应方式吗?什么时候可以抛出一个ServletException

java servlets

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

用于替代ADT和模式匹配的Clojure?

每当在Haskell中我们需要一些变量数据类型时,我们会将ADT与模式匹配结合使用.Clojure人们对这些用例有什么用处?

haskell functional-programming clojure abstract-data-type pattern-matching

15
推荐指数
1
解决办法
2009
查看次数

Bower和NPM如何结合在一起?

因此,为了解释我的问题,我来自Java后端开发人员的角度,我们使用Maven来构建.我一直致力于测试我们最近开发的服务器端Node项目,但现在我正在继续在我们的前端JavaScript客户端上设置测试.我不是很精通前端开发,这是我第一次涉足这方面.

所有这一切,我想我将使用以下技术堆栈进行前端测试:Eclipse IDE,Maven构建过程,Mocha测试框架,Chai断言框架,Nock HTTP模拟框架,Sinon模拟/间谍/ stubbing框架,Rewire依赖注入框架.一切都应该没问题,因为那是我们用于Node项目的堆栈,我希望尽可能保持前端设置的相似性.

所以,这是我的知识崩溃的地方.我似乎无法理解我们的Node项目和我们的前端JavaScript项目之间的依赖关系管理的差异.我不明白为什么我不会继续使用集成到我们的Maven构建中的NPM来处理依赖项管理和安装.

我看到很多人都在鼓吹Bower,但在查看了它的页面和文档之后,我仍然没有看到NPM不会填充的利基.在浏览器依赖管理的情况下,我看到很多人坚决拒绝NPM; 主要原因是NPM是为服务器端Node项目而设计的,而不是为前端空间设计的.但谁在乎?无论其初始设计的意图如何,如果它做了我需要做的事情,那么它的缺点是什么?

请接近这个"问题",好像我是一个完整的新手.我已经意识到,当我完成这个过程和研究时,我对前端方面的知识非常缺乏.话虽如此,请在答案中尽可能具体和彻底.我很乐意根据需要分享项目配置等,以帮助描绘我所在空间的图片.感谢任何反馈!

javascript build dependency-management npm bower

15
推荐指数
1
解决办法
4007
查看次数

为什么_不能在字符串插值中使用?

这有效

(x => s"$x")
Run Code Online (Sandbox Code Playgroud)

但是这个

(s"${_}")
Run Code Online (Sandbox Code Playgroud)

[error] ...: unbound placeholder parameter
[error]   (s"${_}")
Run Code Online (Sandbox Code Playgroud)

这只是因为该(s"$_")构造遭受漏洞抽象

此外: (s"$_")输出完全不同:

[error] ...: invalid string interpolation: `$$', `$'ident or `$'BlockExpr expected
[error]   (s"$_")
[error]      ^
[error] ...: unclosed string literal
[error]   (s"$_")
Run Code Online (Sandbox Code Playgroud)

lambda scala string-interpolation

15
推荐指数
1
解决办法
1971
查看次数

为什么:sprint总是打印"_"?

Prelude> let a = 3
Prelude> :sprint a
a = _
Prelude> let c = "ab"
Prelude> :sprint c
c = _
Run Code Online (Sandbox Code Playgroud)

它为什么总是打印_?我不太了解:sprint命令的语义.

debugging haskell lazy-evaluation ghci

15
推荐指数
3
解决办法
1187
查看次数

使用关联和可交换运算符折叠/减少期货清单

考虑以下:

import scala.concurrent._
import scala.concurrent.duration.Duration.Inf
import scala.concurrent.ExecutionContext.Implicits.global

def slowInt(i: Int) = { Thread.sleep(200); i }
def slowAdd(x: Int, y: Int) = { Thread.sleep(100); x + y }
def futures = (1 to 20).map(i => future(slowInt(i)))

def timeFuture(fn: => Future[_]) = {
  val t0 = System.currentTimeMillis
  Await.result(fn, Inf)
  println((System.currentTimeMillis - t0) / 1000.0 + "s")
}
Run Code Online (Sandbox Code Playgroud)

以下两个print~2.5s:

// Use Future.reduce directly (Future.traverse is no different)
timeFuture { Future.reduce(futures)(slowAdd) }

// First wait for all results to come in, convert to Future[List], …
Run Code Online (Sandbox Code Playgroud)

parallel-processing reduce scala future fold

14
推荐指数
1
解决办法
4198
查看次数