我正在寻找一个允许我在多个用户之间实时同步文本的库(ala Google Docs).
我偶然发现了运营转型,这似乎符合我的需求.话虽如此,我理解OT的要点,但不理解OT的数学和实现.
因此,我想知道是否有一个拖放到文本区域的拖放Javascript库,生成转换,然后允许我将这些转换应用到另一个客户端?
(我已经获得了Etherpad源代码,但我无法做出正面或反面.如果有人能指出如何利用Etherpad的OT实现,那也会很棒!)
可以为FreeT/ProgramT创建的monad变换器提供类似mtl的机制吗?
我对历史的理解如下.曾几何时,monad变压器被发明了.然后人们开始在另一个上堆叠monad变换器,然后发现插入lift
到处都很烦人.然后有几个人发明了monad类,所以我们可以ask :: m r
在任何monad中m
这样做MonadReader r m
.这可以通过让每个monad类穿透每个monad变换器来实现
(Monoid w, MonadState s m) => MonadState s (WriterT w m)
MonadWriter w m => MonadWriter w (StateT s m)
你需要为每对monad变换器提供这样的实例声明对,所以当有n个 monad变换器时,你需要n ^ 2个成本.然而,这不是一个大问题,因为人们将主要使用预定义的monad并且很少创建自己的monad.到目前为止,我理解这个故事,并且在下面的问答中也详细说明:
然后我的问题是新的免费monad http://hackage.haskell.org/package/free和操作monads http://hackage.haskell.org/package/operational.它们允许我们编写自己的DSL并将其用作monad,只需将语言定义为某种代数data
类型(Operational甚至不需要Functor
实例).好消息是我们可以免费获得monad和monad变换器; 那么monad课怎么样?坏消息是"我们很少定义我们自己的monad变换器"的假设不再成立.
为了解这个问题,我做了两个ProgramT
,让它们相互渗透;
https://github.com/nushio3/practice/blob/master/operational/exe-src/test-05.hs
该operational
包不支持monad类,所以我采用了另一个实现minioperational
并将其修改为我需要的工作; https://github.com/nushio3/minioperational
不过,我需要专门的实例声明
instance (Monad m, Operational ILang m) => Operational ILang (ProgramT SLang m) where
因为以下形式的一般声明会导致不可判定的实例.
instance …
我有一些简单的原始操作,例如:
在的情况下,操作单子:
import Control.Monad.Operational
type Process a = Program ProcessI a
data ProcessI a where
GetInput :: ProcessI String
Dump :: String -> ProcessI ()
getInput :: Process String
getInput = singleton GetInput
dump :: String -> Process ()
dump = singleton . Dump
Run Code Online (Sandbox Code Playgroud)
或者在免费 monad的情况下:
import Control.Monad.Free
type Process = Free ProcessF
data ProcessF a
= GetInput (String -> a)
| Dump String a
deriving (Functor)
getInput :: Process String
getInput = liftF $ GetInput id …
Run Code Online (Sandbox Code Playgroud) 我正在寻求实现多用户操作转换,仅用于在网站上的服务器端进行基于纯文本的更改.
是否有可以推荐的非JavaScript实现?
错误的子标题是:
“模板渲染时出错
在 .../base.html 第 0 行的错误
游标“_django_curs_139683611834112_1”不存在
目前在运行带有 docker 的 Ubuntu 的服务器上使用 Django 2.0 和 Python 3.6。通过以下流加载空白 URL 时发生错误:
网址.py:
from dashboard2.account_views_new import AccountView
'''urlpatterns = [
url(r'^$', AccountView.as_view(), name='home'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)
意见:
class AccountView(TemplateView):
template_name = 'fv1/dash_nav.html'
def get(self, request):
this_form = forms.ThisForm()
that_form = forms.ThatForm()
forms = Form.objects.all()
things = Things.objects.all()
return render(request, self.template_name)
def post(self, request):
this = that1.objects.all()
that = this1.objects.all()
return render(request, self.template_name, {data})
Run Code Online (Sandbox Code Playgroud)
base.html(在第 0 行抛出错误):
<!-- update this to include …
Run Code Online (Sandbox Code Playgroud) 我阅读了许多关于配置管理的文章,但我真的不了解这个配置的应用.
它是自己的软件吗?比如,在conf文件中更改主机等......?
或者在应用程序"主机"上?在这种情况下,使用这种软件的目的是什么,知道我们通常使用"准备使用"的docker容器?
operational ×6
haskell ×2
transform ×2
agile ×1
continuation ×1
cursor ×1
django ×1
etherpad ×1
free-monad ×1
java ×1
python-3.x ×1
ruby ×1