标签: nitrogen

你在Erlang上使用氮气的经历是什么?

我一直在查看氮计划,它应该是Erlang最成熟的Web开发框架.

Erlang作为一种语言,令人印象深刻.然而,关于氮,我不太热衷于使用Erlang的相当不常见的语法(除非你是PROLOG中的本地语言)来构建UI.

与其他主流 Web框架(如Django或Rails)相比,您对它的体验是什么?

erlang web-frameworks nitrogen

27
推荐指数
2
解决办法
5632
查看次数

Mnesia碎片和复制:由此产生的可用性和可靠性

我最近询问有关mnesia碎片问题的解决方案之后,我仍然面临许多挑战.请考虑以下场景(我要问的问题基于以下内容):

您有一个数据驱动的企业应用程序,该应用程序应该
在企业内高度可用.如果内部信息源因任何原因而关闭,
企业应用程序必须切换到从异地(远程)恢复中心 获取数据
.

您决定将数据库复制到企业内的两个节点
(称为DB侧ADB侧B).这两个
硬件在单独的硬件上运行,但与快速以太网或光纤链路相连.
从逻辑上讲,您可以在这
两个Mnesia DB 之间创建某种隧道或安全通信.两个(A和B)应该具有相同的数据副本并且
始终保持同步.

现在,同时,恢复中心也必须具有相同的数据副本并且
始终同步,以防因本地数据访问因攻击
或硬件故障而中断.因此,相同的数据库架构必须在3个复制
位点(A面,B面恢复中心).

现在,在企业内,应用程序中间件能够在数据库站点之间切换数据请求.如果A已关闭,那么在应用程序未实现的情况下,请求将重新路由到数据库B,依此类推.中间件层可以配置为执行负载平衡(请求多路复用)或使用故障转移技术灵活.

进一步分析:

At Database/Schema creation time, all involved Nodes must be up and running 
Mnesia. To achieve this, you create say: 'db_side_A@domain.com',
'db_side_B@domain.com' and finally, 'db_recovery_center@domain.com'

现在,在创建表时,您可能希望将mnesia表分段.所以你决定以下参数:

n_disc_only_copies =:= number of nodes involved in the pool =:= 3 
Reason: You are following the …

erlang yaws mnesia erlang-otp nitrogen

7
推荐指数
0
解决办法
1431
查看次数

氮气在哪里获得最佳性能 - 雅司病,mochiweb或inets?

氮项目的网页声明为雅司病,受Mochiweb和inets,但与这些网络服务器是要执行的最好等于支持?即大规模的应用程序,主要是动态内容与氮+一个Web服务器组合将能够处理最大的用户负载?

erlang yaws mochiweb inets nitrogen

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

如何在氮气中获取对等IP地址

在氮框架中是否有内置函数来获取Peer IP地址?如果没有,有没有办法获得正在向Nitrogen App请求的peer的IP地址

erlang nitrogen

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

在其他表单元素上的氮(Erlang Web框架)文件上载和验证器

我有一个#upload元素和一个#textarea元素.当用户按下按钮上传文件时,#textarea也会被发布,我可以在finish_upload_even/4函数中使用wf:q/1接收它.这一切都很好但我想将#validator连接到#textarea并且找不到要使用的TriggerId.我误解了某些东西还是这个功能不明显?也许现在甚至不可能?

BR,丹尼尔

erlang nitrogen

5
推荐指数
0
解决办法
525
查看次数

使用氮气取消闪烁消息

我有一个基于氮的网络应用程序的登录页面.如果用户身份验证失败,我会向用户发送一条消息让他们知道.但是,如果用户继续提供错​​误的凭据,则这些闪存消息会不断增加.有没有办法在发布新消息之前先清除闪烁的消息?

erlang nitrogen

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

ejabberd新手如何设置一个功能齐全的ejabberd服务器?

我是ejabberd的全新人物.我已经下载了windows和linux(Ubuntu)的安装.在网络的某个地方,我看过如何安装和设置它的演示,但安装被配置为"演示".我有pidgin XMPP客户端,现在我在设置ejabberd时遇到了问题.
另一个问题是我试图在后端使用Nitrogen的彗星池和erlang ETS表开发聊天系统(由于现在嵌入在ets表中的故障转移机制),即

ets:give_away/3  [it gives my chat engines fault tolerance, thanks to the guys 
who maintain the virtual machine who saw how useful this is]

我们可以为ejabberd服务器提供Web接口,将其管理界面放在一边.氮彗星在某些时候非常麻烦,例如浏览器超时,特别是在氮2.XX中,不能轻易改变.
所以现在我已经决定了ejabberd.如何使用ejabberd作为后端引擎自定义内部组织聊天系统.我不希望组织中的每个人都将Pidgin作为客户端下载,但希望在Web界面中嵌入聊天功能.
使用Erlang,Yaws,Mnesia,Inets,Mochiweb等我没有问题,所以即使它要求我在ejabberd上开发一些带有少量Gen服务器的erlang应用程序,这也不会成为问题

Please point me in the right direction to get ejabberd up and running. 
On the processOne Website and the ejabberd documentation i have still
failed to start it well. Please help

erlang yaws mnesia ejabberd nitrogen

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

如何在氮气中调用erlang函数?

-module (blah).
-compile(export_all).
-include_lib("nitrogen_core/include/wf.hrl").

main() -> #template { file="./site/templates/bare.html" }.

title() -> "Welcome to Nitrogen".

body() ->
#button { id=calcButton, text="Click"}.

imafunction(Param1, Param2) -> %something here%.
Run Code Online (Sandbox Code Playgroud)

如何通过单击按钮调用imafunction(Param1,Param2)函数及其参数?

erlang nitrogen

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

如何安装erlydtl使其可用于氮气?

我发现,erlydtl 可能与氮气一起使用.

不幸的是,作者还没有描述他是如何安装erlydtl以使其可以从氮气中使用的.

可能有人曾遇到同样的问题,我正面临着.如果是这样,请分享您的经验.

先感谢您.

erlang nitrogen n2o

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

记录网页访问权限的最佳方式

我的一个网站是使用氮气和牛仔服务器.我想记录每次访问网页,就像Apache使用access.log一样.最好的方法是什么?

erlang nitrogen cowboy

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

当程序不再需要它时,销毁数据结构 - Erlang

某些TuplesErlang中操作的函数会在操作后生成新元组的副本.在大多数情况下,程序不再对创建新元组的旧元组副本感兴趣.让我们看一个例子:

change(Position,Tuple1,NewValue) when size(Tuple1) > 10,Position < 10 ->
    NewTuple = erlang:setelement(Position, Tuple1, NewValue),
    %% at this point i don't want Tuple1
    %% I want to destroy Tuple1 at this point !
    %% how do i do it
    erlang:send(myprocess,NewTuple),
    ok.

在上面的示例中,我从现有元组创建一个新元组.如果我随后要这样做,我会想要破坏我自己的旧副本.我有一种感觉,编译器/运行时系统会自动执行此操作,但如果是这样,他们就不会给我们提供如下功能:erlang:garbage_collect/0.我们肯定他们意识到我们可能需要隐式地管理我们的内存,可能它会使程序免于崩溃并找到通过代码的内存密集部分的方式.

我明白,在它中erlang shell,它可能会让它忘记一个变量(假设他们的意思是破坏变量)使用f/0, f/1.但是,似乎我不能在我的模块/功能中使用它.我还怀疑在变量名称前面放置一个下划线可能会加速运行时系统的破坏,即在我的代码中写入的一些内容:_Tuple1to destroy Tuple1

.总之,问题是,如果我随后将从现有的元组创建元组,并且在每一步我想立即销毁旧副本(我自己),我该怎么做? *注意*我明白效率指南禁止这个,但是,如果我别无选择.....

伙计们帮忙,你的解决方案是什么?谢谢

erlang yaws mnesia mochiweb nitrogen

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

标签 统计

erlang ×11

nitrogen ×11

yaws ×4

mnesia ×3

mochiweb ×2

cowboy ×1

ejabberd ×1

erlang-otp ×1

inets ×1

n2o ×1

web-frameworks ×1