小编Pet*_*ron的帖子

Clojure中的惯用字符串旋转

如何在Clojure中为Burrows-Wheeler转换惯用旋转字符串?

我想出了这个,(cycle "string")但是感觉有点迫切:

(let [s (str "^" "banana" "|")
      l (count s)
      c (cycle s)
      m (map #(take l (drop % c)) (range l))]
  (apply map str m))
=> ("^banana|" "banana|^" "anana|^b" "nana|^ba" "ana|^ban" "na|^bana" "a|^banan" "|^banana")
Run Code Online (Sandbox Code Playgroud)

我不确定这是否符合代码高尔夫的要求.有更清洁的方法吗?

string clojure rotation burrows-wheeler-transform

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

连接到恢复的数据库时 Datomic 抛出 ActiveMQInternalErrorException

我从 :dev 存储备份了 Datomic v0.9.5786 数据库:

\n
~/datomic/datomic-pro-0.9.5786/bin/datomic -Xmx4g -Xms4g backup-db datomic:dev://localhost:4334/acct file:/Users/petrus/acct.datomic\nCopied 0 segments, skipped 0 segments.\nCopied 414 segments, skipped 0 segments.\n:succeeded\n
Run Code Online (Sandbox Code Playgroud)\n

在我的另一台笔记本电脑上将备份恢复到较新版本的 Datomic Pro v1.0.6202 显然成功了:

\n
\xe2\x9e\x9c  datomic-pro-1.0.6202 bin/datomic -Xmx4g -Xms4g restore-db file:/Users/petrus/Projects/acct/resources/data/acct.datomic datomic:dev://localhost:4334/acct\nCopied 0 segments, skipped 0 segments.\nCopied 414 segments, skipped 0 segments.\n:succeeded\n{:event :restore, :db acct, :basis-t 38265, :inst #inst "2020-10-22T10:03:31.186-00:00"}\n
Run Code Online (Sandbox Code Playgroud)\n

我按照文档中的描述重新启动了 Dev 事务处理程序,但是当我尝试从 REPL 进行连接时,Datomic 抛出:

\n
(d/connect "datomic:dev://localhost:4334/acct")\n=> Execution error (ActiveMQInternalErrorException) at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl/sendBlocking (ChannelImpl.java:404).\nnull\n
Run Code Online (Sandbox Code Playgroud)\n

尝试(d/delete-database "datomic:dev://localhost:4334/acct")失败并出现相同的错误,但尝试连接到不存在的数据库会干净地抛出“目录不存在”。

\n

在源计算机上安装 …

datomic

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

流利的NHibernate新手:Row被另一个交易更新或删除

我正处于使用Fluent NHibernate构建数据库的早期阶段.我在ASP.NET MVC 3中实现了一个工作单元模式,让NHibernate为我更新我的数据库模式.为了插入/更新我的初始数据,我有一个Database控制器,其中一个Update操作尝试将SaveOrUpdate(...)一个User实体(管理员用户)放入Users表中.

通过Visual Studio手动删除所有用户记录并重新运行我的Update操作以重新填充Users表后,我收到以下NHibernate.StaleObjectStateException异常:

Row was updated or deleted by another transaction (or unsaved-value mapping was
incorrect): [Invoicer.Data.Entities.User#3105248d-ca91-4c64-bf8f-9ebb017943b7]

Line 26:        {
Line 27:            if (_transaction.IsActive)
Line 28:                _transaction.Commit();
Line 29:        }
Run Code Online (Sandbox Code Playgroud)

注意:保存或更新的用户ID是Guid,其值大于(3105 ...).

我究竟做错了什么?

sql-server fluent-nhibernate asp.net-mvc-3

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

流畅NHibernate中的地理空间点映射

我很难让Fluent NHibernate在SQL Server的地理空间类型中发挥出色.我想在我的Place类中存储一个地理点,但是当我运行ASP.NET MVC应用程序时,我不断收到NHibernate配置错误:

Method 'SetParameterValues' in type 'NHibernate.Spatial.Type.GeometryType' from
assembly 'NHibernate.Spatial, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null' does not have an implementation.
Run Code Online (Sandbox Code Playgroud)

更新:这是由过时的NHibernate.Spatial DLL引起的.引用最新版本(2.2+)可以解决问题.感谢psousa带领我找到解决方案.

Place 类:

using System;
using GisSharpBlog.NetTopologySuite.Geometries;
using NHibernate.Validator.Constraints;

namespace MyApp.Data.Entities
{
    public class Place
    {
        public virtual Guid Id { get; set; }
        public virtual string Name { get; set; }
        public virtual Point Location { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

流利的Place映射:

using MyApp.Data.Entities;
using FluentNHibernate.Mapping;
using NHibernate.Spatial.Type;

namespace MyApp.Data.Mappings
{
    public class …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc spatial fluent-nhibernate sql-server-2008

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

ASP.NET MVC 4 Beta打破了开发人员预览项目

升级到我的ASP.NET MVC 4开发人员预览程序集到最新的MVC 4 beta后,我的MVC 4项目发生以下异常:

Could not load type 'System.Web.WebPages.DisplayModes' from assembly
'System.Web.WebPages, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.

...

Exception Details: System.TypeLoadException: Could not load type
'System.Web.WebPages.DisplayModes' from assembly 'System.Web.WebPages,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

更新:我安装了新的MVC 4 Beta NuGet包,它添加了大多数正确的程序集,但现在我在编译时得到了丢失的DisplayModes错误:

The name 'DisplayModes' does not exist in the current context.
Run Code Online (Sandbox Code Playgroud)

对于以下代码Global.asax.cs:

DisplayModes.Modes.Insert(0, new DefaultDisplayMode("iPhone") { ... });
Run Code Online (Sandbox Code Playgroud)

第二次更新:解决了.

asp.net-mvc asp.net-mvc-4

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

在 Docker 镜像中保留 RabbitMQ 配置

在 Docker 镜像中配置 RabbitMQ 是一场噩梦。当使用Fig作为链接容器运行 RabbitMQ 时,我可以连接到 RabbitMQ 接口,并成功配置vhosts和允许我的 Celery 工作人员进行连接,没有任何问题。

但是,重新启动 Docker 会丢失配置设置。我怎样才能保留这些设置?

我尝试过的一些事情:

  • 配置完所有内容后,从导出写入/etc/rabbitmq/rabbit.configDocker 映像。RabbitMQ 会忽略它。
  • 在我的 Docker 文件中设置主机名ENV HOSTNAME localhost,但这似乎会干扰图 1 中链接 Docker 容器。

我究竟做错了什么?是否有一个规范的 Dockerfile 用于获取配置的 RabbitMQ docker 容器以用于 Docker 链接开发目的,最好使用 Fig?

rabbitmq docker

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

SQLAlchemy 最新值的高效子查询

实体status属性的当前值可以作为该实体的EntityHistory表中的最新条目进行查询,即

Entities (id) <- EntityHistory (timestamp, entity_id, value)
Run Code Online (Sandbox Code Playgroud)

如何编写高效的 SQLALchemy 表达式,从历史记录表中为所有实体急切加载当前值,而不会导致 N+1 查询?

我尝试为我的模型编写一个属性,但是当我遍历它时,这会为每个 (N+1) 生成一个查询。据我所知,没有子查询就无法解决这个问题,这对我来说在数据库上仍然效率低下。

示例EntityHistory数据:

timestamp |entity_id| value
==========|=========|======
     15:00|        1|     x
     15:01|        1|     y
     15:02|        2|     x
     15:03|        2|     y
     15:04|        1|     z
Run Code Online (Sandbox Code Playgroud)

因此,对于实体1的电流值将是z和实体2这将是y。后备数据库是 Postgres。

python sqlalchemy subquery select-n-plus-1

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

反思Clojure功能名称

如何在Clojure中使用反射来提取计算为函数的符号的函数名?

(require '[clojure.reflect :as r])
(defn foo [x] x)
(r/reflect foo)
=> {#clojure.reflect.Field ... 'gobbledygook}
Run Code Online (Sandbox Code Playgroud)

关于(map :name (:members (r/reflect foo)))什么?

reflection function clojure

0
推荐指数
1
解决办法
147
查看次数

如何在回车符(\ r)或CRLF(\ r \ n)行终止符上拆分流?

我正在尝试拆分一个奇数的串行端口流,该流使用回车符\r(有时是回车符)分隔行\r\nBufReader具有lines功能,但仅在\n或上分割\r\n。有一个.read_until(...)功能,但仅适用于单个终结器。

基于标准库的实现,我已经开始拼凑一些内容,但尚未编译。我希望我以“ Rust way”的方式做对了。对于字节流,正则表达式似乎过于昂贵。

输入示例:

Heading:\r\nLine 1\rLine 2\rLine 3\r\nEnd
Run Code Online (Sandbox Code Playgroud)

lines()在该输入上使用时,将得到三行,因为\r它不被视为行终止符:

Heading:
Line 1\rLine 2\rLine 2\rLine 3
End
Run Code Online (Sandbox Code Playgroud)

split carriage-return rust

0
推荐指数
1
解决办法
214
查看次数