我该如何选择Datomic的后端存储服务?
选择DynamoDB而不是Postgres是优先考虑的问题,还是每个选项都有不同的权衡?如果是这样,他们是什么?
我有一个我目前运行的compojure/ring应用程序lein ring server,我想编译成.war所以我可以部署它.不过,我有一个定义,就像
(def foo (start-scheduler))
Run Code Online (Sandbox Code Playgroud)
这会阻止.war的编译和生成.为了避免这种情况,我考虑将调用转移到启动函数,但是在服务器启动时如何调用它?
如果我把调用放在处理程序中,我最终会遇到和以前一样的问题.
谢谢!
如何使用任意函数或一组列使Dired显示其文件?基本上我想改变自:
-rw-r--r-- 1 konrad konrad 3847863 Out 18 14:17 ClojureinAction.pdf
-rw-rw-r-- 1 tamara tamara 27338341 Out 20 07:16 Halliday, Resnick, Walker - Fundamentals of Physics.pdf
-rw-r--r-- 1 konrad konrad 3921024 Set 22 11:11 Pragmatic.Programming.Clojure.May.2009.pdf
Run Code Online (Sandbox Code Playgroud)
喜欢的东西
644 1-5MB ClojureinAction.pdf PDF (5 days ago, 400pgs)
664 10-100MB Halliday, Resnic...pdf PDF (3 days ago, 1000pgs, Tamara's)
644 1-5MB Pragmatic.Progra...pdf PDF (1 min ago, 100 pages)
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:谢谢你的回答,加雷斯,但你能说得更详细吗?显然,钩子只允许我在缓冲区加载时运行任意代码.Dired甚至不会停止加载缓冲区:(
(defun foo (&rest args) (unlocking-buffer (message "foo") (insert "foo\n")))
Run Code Online (Sandbox Code Playgroud)

看看dired的源代码,它似乎从我正在尝试替换的这些格式中获取信息,所以我想知道以这种方式改变它是否可行,或者我是否最终必须重写所有内容.
我想知道是否存在反向(kbd)函数,我可以使用它来从密钥代码中获取有意义的描述,例如,C-b来自2.
通常(format "%c" x)可行,但不适用于前一个示例以及许多其他示例,因为键绑定(特别是在Emacs上)通常比单个字符更复杂,即使它们确实是单个字符,它们也可以是空格或者标签.
似乎文档函数使用自己的函数(describe-buffer-bindings),它是用C编写的,因此是不可变的,如果可能的话,我想避免使用该路径,并以我的方式操纵数据以提供更好的功能.
我唯一不喜欢Emacs的是缺少命名空间,所以我想知道我是否可以自己实现它们.
这是我的第一次尝试,很明显,我不能用其前缀版本替换名称的每个匹配,但我应该检查什么?我可以用(let)检查绑定然后标记整个子树,但是如果有人创建了一个使用let的(my-let)函数呢?我的努力注定会失败吗?:(
另外,为什么我的defuns无法定义函数?我是否必须在每个新令牌上运行类似于实习符号的内容?
谢谢!
我在几个项目中使用Datomic,是时候将所有常用代码移动到一个小型实用程序库中.
一个挑战是处理uri大多数操作所依赖的共享数据库,但必须由项目使用库设置.我想知道是否有一种成熟的方法来做到这一点.以下是我想过的一些替代方案:
删除uri库中的符号,并将uri作为参数添加到访问数据库的每个函数中
alter-var-root在init函数中通过或类似机制对其进行更改
将它作为动态var保存在库中,*uri*并覆盖希望小的适配器层中的值
(def my-url ... bla ...)
(defn my-fun [args](with-datomic-uri my-uri (apply library/my-fun args))
保持uri图书馆的原子
你能给我一些不适合动态范围lisps的任务的例子吗?我没有看到词汇范围如何更好,而不仅仅是改变编码风格,所以我喜欢编写一些东西并亲眼看到它.
谢谢!
我不想使用边框,而是将聚焦和未聚焦窗口的alpha设置为90%和70%.这将适用于除了匹配某些标准(如className ="Gimp")的窗口之外的所有窗口.我怎样才能在我的xmonad中实现它?
谢谢!
当我注意到一个可变字段用^:unsynchronized-mutable注释时,我正在研究一个clojure lib .Mutable是可变的,但我不知道未同步的部分意味着什么,所以我读了文档,其中包含:
请注意,可变字段非常难以正确使用,并且只是为了便于在Clojure本身中构建更高级别的构造,例如Clojure的引用类型.它们仅供专家使用 - 如果:volatile-mutable或:unynchronized-mutable的语义和含义对您来说不是很明显,那么您就不应该使用它们.
我无法得到细微差别:它是否说在实践中我选择哪个可变性注释无关紧要,或者人们应该忘记完全使用可变类型?
并且,为了好奇,在较低的抽象层次中,它们之间的语义差异是什么?
谢谢!