小编kes*_*kes的帖子

构建和部署Clojure应用程序的最佳实践:好的教程?

我是Clojure的新手,我开始尝试构建应用程序.

到目前为止,我所看到的有关编译Clojure程序的教程的所有内容都涉及交互性.例如,"加载REPL并键入(加载文件"this-or-that")以运行.这很好,但这还不够.

我已经习惯了C语言或Delphi等语言的编辑 - 编译 - 运行习惯,我本能地驱动编辑,然后点击"Mx编译".

问题是"lein uberjar",我理解相当于"make",即使对于一个你好的世界也很难执行.因此,我将不得不弄清楚这种"交互式开发"的东西是如何工作的,停止使用像它快速制作的超级发布,并且只在一天结束时保存它.

我在构建时注意到的另一件事(使用lein uberjar)是我正在处理的小GUI应用程序在编译过程中弹出帧,就像它们在编译时执行一样.这对我来说似乎有点违反直觉; 它并不像我想象的那样类似于"制造".

我知道Lisp的开发方式是在REPL中交互式工作,我并不想改变它:我想适应这种生活方式.不幸的是,我没有看到关于如何这样做的文档形式.例如,如何重置机器的当前状态.只是继续编译各个片段而不能进行某种重置似乎有点麻烦.

我在Clojure(和Lisp)上看到的大多数教程似乎都专注于在REPL中进行黑客攻击.应用程序部署的最佳实践对我来说仍然是一个谜.我的用户只是用户; 他们不会成为将文件加载到REPL的开发人员.

所以这是我的问题:任何有关构建Clojure应用程序的整个过程(包括部署)的良好信息或教程的资源?

(注意:我已经安装并运行了所有先决条件(例如Emacs,Slime,Leiningen等),所以这不是一个问题).

lisp deployment clojure leiningen

47
推荐指数
2
解决办法
7656
查看次数

库函数用n次组成一个函数

Haskell中是否有一个库函数可以自己编写一个函数n次?

例如,我有这个功能:

func :: a -> a
Run Code Online (Sandbox Code Playgroud)

我想这样做:

func . func . func . func . func . func , ... 
Run Code Online (Sandbox Code Playgroud)

(最多n次,其中n仅在运行时已知).

请注意,迭代函数不适合我正在做的事情,因为我不关心任何中间结果.

haskell

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

在Python中将时区感知日期时间转换为本地时间

如何将时区感知日期时间对象转换为本地时区的等效非时区感知日期时间?

我的特定应用程序使用Django(虽然,这实际上是一个通用的Python问题):

import iso8601
Run Code Online (Sandbox Code Playgroud)

....

date_str="2010-10-30T17:21:12Z"
Run Code Online (Sandbox Code Playgroud)

....

d = iso8601.parse_date(date_str)

foo = app.models.FooModel(the_date=d)
foo.save()
Run Code Online (Sandbox Code Playgroud)

这会导致Django抛出错误:

raise ValueError("MySQL backend does not support timezone-aware datetimes.")
Run Code Online (Sandbox Code Playgroud)

我需要的是:

d = iso8601.parse_date(date_str)
local_d = SOME_FUNCTION(d)
foo = app.models.FooModel(the_date=local_d)
Run Code Online (Sandbox Code Playgroud)

什么会SOME_FUNCTION是什么?

python django datetime iso8601

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

如何在Play 2.x中检测应用程序模式

在Play 2.1应用程序中,我将如何以编程方式确定应用程序运行的模式(即开发生产)?

例如,能够从模板内部执行此类操作会很有用:

<p>@if(__some_play_API_call__ == Dev) { <b>Development mode</b> }</p>

在Play 2.0 API文档中,似乎有一个mode属性...但是,我不确定如何获取当前正在运行的应用程序的实例.play.api.Application

scala playframework playframework-2.0

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

从Delphi以编程方式检查数字签名

我需要Delphi中的一个函数来验证外部EXE或DLL的数字签名.在我的特定应用程序中,我偶尔会调用其他进程,但出于安全考虑,我想确保这些可执行文件是在我们的组织运行之前创建的.

在C中看过微软的例子,但是,我不想浪费时间将其翻译成Delphi,如果其他人已经有的话.

我更喜欢第三方库的代码段或代码示例.谢谢.

windows delphi winapi digital-certificate digital-signature

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

SQLAlchemy:选择查询中对象的哪些列

是否可以控制在SQLAlchemy的查询方法中查询哪些列,同时仍然返回您要查询的对象的实例(尽管已部分填充)?

或者SQLAlchemy是否有必要执行SELECT *映射到对象?

(我知道查询单个列是可用的,但它不会将结果映射到对象,而只映射到命名元组的组件).

例如,如果User对象具有userid,name,password和bio属性,但您希望查询仅填充它返回的对象的userid和name:

# hypothetical syntax, of course:
for u in session.query(User.columns[userid, name]).all():
    print u
Run Code Online (Sandbox Code Playgroud)

会打印:

<User(1, 'bob', None, None)> 
<User(2, 'joe', None, None)>
...
Run Code Online (Sandbox Code Playgroud)

这可能吗; 如果是这样,怎么样?

python orm sqlalchemy

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

如何安装leiningen插件?

如何安装leiningen插件?

例如,leiningen-run?

我看到这个名为"clojars.org"的东西,以及如何"推"到它,但我没有看到任何关于"拉"的东西.

clojure leiningen

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

从字符串和字符串列表创建元组

我需要将一个字符串和一个字符串列表组合成一个元组,这样我就可以将它用作字典键.这将是一个内环,所以速度很重要.

列表将很小(通常为1,但偶尔会有2或3个项目).

最快的方法是什么?

之前:

my_string == "foo"
my_list == ["bar", "baz", "qux", "etc"]
Run Code Online (Sandbox Code Playgroud)

后:

my_tuple == ("foo", "bar", "baz", "qux", "etc")
Run Code Online (Sandbox Code Playgroud)

(注意:my_list不得自行更改).

python string tuples list

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

如何在Slick 2.0中COUNT(*)?

根据Slick 2.0文档,要获取表中的行数:

val q1 = coffees.length
// compiles to SQL (simplified):
//   select count(1) from "COFFEES"
Run Code Online (Sandbox Code Playgroud)

然而,事实证明这coffees.length是类型Column[Int].

如何执行查询并获取值?

scala slick slick-2.0

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

在金字塔中调用另一个视图

我的目标:在金字塔中,调用另一个视图可调用,并在Response不知道有关该视图可调用的任何细节的情况下获取对象.

在我的Pyramid应用程序中,假设我有一个使用view_config装饰器定义的视图"foo":

@view_config(route_name="foo",
             renderer="foo.jinja2")
def foo_view(request):
    return {"whereami" : "foo!"}
Run Code Online (Sandbox Code Playgroud)

现在说我想将"bar"路由到暂时执行相同操作的视图,因此它在内部调用foo_view并返回其响应:

@view_config(route_name="bar")
def bar_view(request):
   return foo_view(request)
Run Code Online (Sandbox Code Playgroud)

...可是等等!这不起作用,因为foo_view它不会返回Response它的渲染器.

所以,这将工作:

@view_config(route_name="bar",
             renderer="foo.jinja2")
def bar_view(request):
    return foo_view(request)
Run Code Online (Sandbox Code Playgroud)

因为它将应用相同的渲染器foo_view.但这很糟糕,因为我现在必须通过复制渲染器值并且必须知道被调用视图的渲染器来重复自己.

所以,我希望Pyramid中有一些函数允许调用另一个view-callable并在Response不知道或关心渲染对象的情况下获取一个对象:

@view_config(route_name="bar")
def bar_view(request):
    response = some_function_that_renders_a_view_callable(foo_view, request)
    return response
Run Code Online (Sandbox Code Playgroud)

some_function_that_renders_a_view_callable是什么?

pyramid.views.render_view似乎按名称搜索视图; 我不想透露姓名.

(注意:返回HTTPFound导致客户端重定向到目标路由是我试图避免的.我想"内部"重定向).

python view pyramid

14
推荐指数
3
解决办法
6581
查看次数