小编Muz*_*hua的帖子

Erlang中的参数化模块

我正在浏览mochiweb源代码并且看到了以前从未使用过的东西.该模块声明尤其是在mochiweb_requestmochiweb_response模块在了Mochiweb HTTP库中找到.以下是模块的开始:

-module(mochiweb_request,[Socket, Method, RawPath, Version, Headers]).
-author(...).

然后在模块中你看到get(socket) -> Socket;get(method)-> Method; ....
这让我很困惑.当我尝试获取其中一个这样的模块的模块信息时,编译器添加了一些东西:{abstract,true}在返回:
mochiweb_request:module_info()..事实上,他们的文档将这些模块称为abstract modules.

我搜索了谷歌并找到了一篇关于参数化模块的论文:链接太大了但是你肯定如果你在这里继续那么你会得到论文

这些模块不能直接调用,而是通过它们的实例调用.它使模块表现得像是乐趣.我已经意识到它是运行时系统中的一个非官方特性.令我困惑的是,mochiweb的家伙们正在使用它!在mochiweb模块中,您将找到自己的写作:

loop(Req,_DocRoot)->
    "/" ++ Path = Req:get_path(),
    Body = Req:recv_body(),
    Method = Req:get(method),
    ...,
    ....,
    Response = Req:ok({"text.html;charset=utf-8",[],chunked}),
    Response:write_chunk("Some text here....."),
    ...

试图 io:format("\n\t Req = ~p~n",[Req])揭示一个复杂的数据结构(一个元组)element(1,Req) == mochiweb_request.挺有趣的!?!!!?

问题1是:现在在生产中使用是否稳定,或者我可以等到正式生产?

问题2是:如果mochiweb家伙尚未正式使用它,他们是如何获得使用它的信心的?

问题3:为什么它还没有正式发布?(因为,对我来说,它带来了一些面向对象的功能)

问题4:那里有没有人使用过它?他/她在哪些情况下使用这些参数化模块?为什么?你能指点我们看看或发布一些源代码的链接,以便我们可以找到更多有关此功能的信息吗?

最后一个问题:没有在Erlang Docs中我发现了这个功能.没有教科书,甚至没有回家.那么使用它的人是如何找到使用它的方式和原因的呢?它是否已经包含在此处的Erlang Run时间系统的商业版本中?

erlang module parameterized

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

CouchBase 1.8和2.0 Erlang SDK?为什么Erlang被排除在外

我非常高兴看到CouchBase团队为我们提供了一个出色的NoSQL解决方案所做的出色工作.然而,尽管与可能是ruby,PHP,Java或Python相比,erlang Web开发人员很少,但是获取erlang的开发人员的数量正在增加.

这让我想到了为什么在他们的SDK页面上,他们不断遗漏Erlang.有了雅虎Web服务器,Mochiweb和许多其他Erlang Web库,为什么他们不会在他们的NoSQL领域支持Erlang.发现他们使用它来构建他们的DBMS但他们没有为该语言提供客户端/ SDK是非常令人不安的.

现在,问题是:在某处我读到它是因为Erlang Web Development中没有钱.这是他们给出的唯一理由吗?

还有谁知道为什么Couch Base一直拒绝为他们的NoSQL数据库提供Erlang SDK?

database erlang couchdb nosql couchbase

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

Zotonic-哪里可以找到快速入门

我去过zotonic docs,但是,他们并没有真正有用,因为那里的一切都是零碎的.我是一个平均优秀的二郎程序员,我想我需要的是一个网站或网络应用程序的完整示例,无论多么简单,但从头开始.

通常,构建的示例将用于说明库的所有基本概念.例如,网站如何安排?我如何以及在哪里放这些文件?这个配置是什么意思?这项任务有哪些选择?等

Zotonic在外面看起来不错,我很想潜入它.它看起来像是使用erlang构建网站和管理网站的唯一Erlang简便方法.

问题:有没有人遇到过一个完整的Zotonic构建的网站或网络应用程序,他可以共享的源代码或者从头开始的教程,特别是对于Erlang程序员来说,可以让一个人真正开始?类似于这个Django介绍的东西
另外,是否有任何可以安装在Windows服务器上的Zotonic构建?

zotonic

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

CouchDB和Cloudant安全性

我们CouchDB在生产中使用过,主要是在受控环境中构建应用程序.大多数情况下,我们使用中间件库进行直接调用couchdb/cloudant,从而避免直接(前端JavaScript调用直接进入CouchDB/Cloudant).

出于安全原因,很明显,对于经过身份验证的CouchDB数据库:
http://{username}:{password}@IPAddress:Port/DB
或者对于cloudant:,
https://{username}:{password}@username.cloudant.com/DB如果直接通过JavaScript进行调用,则今天浏览器中的开发人员工具可以使人员实现此调用,从而可以完全访问您的数据库.

在中间件处理时,附件通常很痛苦.有利的是使云量处理附件的高速缓存和服务直接到前端,从而减轻了我们的中间件.但是,在网络上和庞大的受众群体中,直接调用我们的云端环境非常棘手.

我们首先为所有附件都设置了一个单独的cloudant帐户,这样inquisitive boy就不会篡改我们用户的实际元数据或信息.因此,他们可以访问的唯一cloudant帐户是附件,因为我们正在对我们的数据库进行直接的JavaScript调用.

问题:我们如何找到隐藏云环境的用户名和密码的方式,从而允许我们安全地对云端进行直接JavaScript调用?我们的基础架构完全在云端,因此我们没有代理和东西可以使用.我们听说过Url缩短服务,CDN等,但我们还没有找到一个非常确定的解决方案.

javascript couchdb nosql cloudant

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

mochiweb和Webmachine入门?

Mochiweb和webmachine是非常有前途的应用程序,当你看到那些发现他们周围的人正在使用它时.我需要被引导到我可以在mochiweb上找到初学者的教程.似乎没有专门用于该框架的网站.我认为我需要的是一个pdf,一个博客网站或mochiweb的教程,提供了几个如何使用它的例子.我已经是一名二郎程序员,使用氮气,雅司病,Mnesia和OTP等请告诉我方式......

mochiweb webmachine

5
推荐指数
3
解决办法
6300
查看次数

Erlang和JavaScript MD5摘要匹配

在这里测试MD5的Javascript实现: http://www.webtoolkit.info/javascript-md5.html给出以下输出:

MD5("muzaaya") = "00e081abefbbbf72b2d5258196a9b6d0"

转到我的erlang shell,并计算相同值的MD5我得到这个:

Eshell V5.8.4  (abort with ^G)
1> erlang:md5("muzaaya").
<<0,224,129,171,239,187,191,114,178,213,37,129,150,169,
  182,208>>
2>

我怎么能比较这两个?如果来自JavaScript前端应用程序的MD5结果来到我的Erlang后端,我希望能够比较两个摘要.如何将Javascript MD5摘要与Erlang的摘要相匹配?

javascript erlang yaws mnesia

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

list:append/2与erlang:'++'/ 2,追加到列表末尾与追加到其头部

在两对给定的比较中,对于Erlang中的系统资源,哪一对(每对)更昂贵:

Qn1: lists:append(L1,L2)erlang:'++'(L1,L2)
Qn2相反写入列表的头部说:[NewHead|List]与写入列表末尾的对象:List ++ [NewValue]

我之所以问这个问题,是因为我的程序中有一部分是读写列表的.我需要决定是否要写到列表的头部或写到他们的目的,反之亦然.

erlang list append

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

mnesia:wait_for_tables/2,我真的明白了吗?

我现在已经使用了mnesia一段时间了.我必须承认,我觉得我并不完全理解mnesia的概念:wait_for_tables/2.引用下面的文档说:

Some applications need to wait for certain tables to be accessible in order to do
useful work. mnesia:wait_for_tables/2 hangs until all tables in the Tab List are
accessible, or until timeout is reached.
现在,对于我开发的所有应用程序,我必须在启动后端时调用它.在上面的文档中,上下文"Some applications"没有很好地扩展,这就是我的问题所在.

这些是我的想法:
1.等待这种方法意味着我们正在加载mnesia表,从Disc到RAM(Disc_copies的情况)
2.我个人认为,如果我的应用程序只包含RAM (ram_copies)表,那么我不需要这个我的代码中的方法.现在,我认为如果我只有disc_only_copies,我也不需要这个功能.
3.此外,我在从网络加载mnesia表时需要此功能,尤其是当我的表被复制时,所以我的应用程序需要等待启动时​​的mnesia才能使这些表准备好.但这仍然只适用于类型表,disc_copies为什么完全在Disc上运行或完全在RAM中运行的应用程序需要等待并加载表?

问题:
帮助和检查我的想法1,2和3.一般来说,只有在处理mnesia表类型时才需要此功能:disc_copies因为这种类型与光盘和RAM上的数据复制有关吗?

如果我的表都是碎片,(我总是为每个片段调用此方法以确保mnesia为我的应用程序做好准备),我是否必须调用每个片段的方法?是ATOMIC或Transactional的方法,如果我在mnesia事务中调用它(意味着如果我单独指定基表,mnesia将自动加载所有表片段)?我的碎片的表格类型对此功能也有影响吗?

erlang mnesia

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

托管Ext js 4 - 我在哪里可以找到它并从那里取出我的页面?

我检查了Google Hosted EXT Js,但是我找不到EXT JS 4.我希望我的网页能够从那里引用EXT JS 4而不是我本地的Web服务器.任何人请告诉我EXT JS 4的完整路径托管网站上的一些始终可用的地方,并且可以被其他网页用作

<link rel="stylesheet" type="text/css" href="LINK_TO_EXTJS4/resources/css/ext-all.css">
<script type="text/javascript" src="LINK_TO_EXTJS4/ext-all.js"></script>
所以我需要上面的两行,取代LINK_TO_EXTJS4指向某些EXT JS4的某些网站,以便我的用户浏览器从这些端点而不是从我的本地Web服务器获取JavaScript库.谢谢

javascript css extjs extjs4

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

芝加哥老板的默认Web服务器是什么?

Chicago Boss是一个伟大的Erlang框架.它附带很多依赖条件包括mochiweb,yaws,和misultin.安装完成后,Chicago Boss可以很好地运行开发服务器.

我需要知道它附带了哪些Web服务器,默认使用它?如何在不影响芝加哥Boss项目的情况下从一个Web服务器更改为另一个Web服务器?

chicagoboss

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