如何在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)
我不确定这是否符合代码高尔夫的要求.有更清洁的方法吗?
我从 :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\nRun 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"}\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n尝试(d/delete-database "datomic:dev://localhost:4334/acct")失败并出现相同的错误,但尝试连接到不存在的数据库会干净地抛出“目录不存在”。
在源计算机上安装 …
我正处于使用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 ...).
我究竟做错了什么?
我很难让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 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)
第二次更新:解决了.
在 Docker 镜像中配置 RabbitMQ 是一场噩梦。当使用Fig作为链接容器运行 RabbitMQ 时,我可以连接到 RabbitMQ 接口,并成功配置vhosts和允许我的 Celery 工作人员进行连接,没有任何问题。
但是,重新启动 Docker 会丢失配置设置。我怎样才能保留这些设置?
我尝试过的一些事情:
/etc/rabbitmq/rabbit.configDocker 映像。RabbitMQ 会忽略它。ENV HOSTNAME localhost,但这似乎会干扰图 1 中链接 Docker 容器。我究竟做错了什么?是否有一个规范的 Dockerfile 用于获取配置的 RabbitMQ docker 容器以用于 Docker 链接开发目的,最好使用 Fig?
实体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。
如何在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)))什么?
我正在尝试拆分一个奇数的串行端口流,该流使用回车符\r(有时是回车符)分隔行\r\n。BufReader具有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) asp.net-mvc ×2
clojure ×2
datomic ×1
docker ×1
function ×1
python ×1
rabbitmq ×1
reflection ×1
rotation ×1
rust ×1
spatial ×1
split ×1
sql-server ×1
sqlalchemy ×1
string ×1
subquery ×1