Erlang Netconf Support - erlang

Does Erlang/OTP has Netconf client and server implementation?
Google brings me to http://erlang.org/doc/man/ct_netconfc.html; what is this ct for?
The other project that I found seems to be not maintained https://github.com/FlowForwarding/enetconf
Is there anyone who is using Netconf with Erlang and can help provide some starting point.
Greg

The ct_netconf module is part of the "Common Test" test framework, and is probably not usable as a standalone client.
But yes, there is Erlang software that implements Netconf. ConfD was written in Erlang, by the company Tail-F (who got bought by Cisco some years ago). I can't find any online docs, but from mailing list discussions it looks like the free (but not open source) ConfD Basic has Erlang and C bindings. You can get it from here: http://www.tail-f.com/confd-basic/ (registration required).
See http://www.tail-f.com/company-story/ for more background.
(At https://github.com/tail-f-systems there is a Netconf client in Java, but no open source Erlang code.)

Related

Should I learn Elixir or Erlang (or both)? [duplicate]

This question already has answers here:
Are there things Elixir can do that Erlang cannot, or vice versa?
(4 answers)
Closed 6 years ago.
I read on the Elixir site that sooner or later a developer will want to include Erlang libs into their Elixir projects. Why would this be? Are there things that can only be done in Erlang?
I'd be just as happy learning Erlang instead of Elixir. Are there core things available in Elixir but not in Erlang?
Both languages are Turing-complete, so there's nothing that can be done in one and not in the other. The difference between the two is in the syntax.
Elixir developers use Erlang libraries because there are some excellent Erlang libraries out there and one of the advantages of living on the BEAM (Erlang VM) is that interoperability. (Just like how JVM languages get access to the vast array of Java libraries.) The most prominent example is Phoenix (popular Elixir web framework) using Cowboy (popular Erlang web server).
As Elixir continues to grow, you'll see more of the reverse, too: Erlang developers grabbing a useful Elixir library to use.
You can see packages for both languages (and they're all useable by both languages) at https://hex.pm

Are most Erlang applications such as MochiWeb, Riak, RabbitMQ, Zotonic, ejabberd and CouchDB OTP applications?

Just started reading the OTP chapter on the great Erlang book by Francesco Cesarini. Are most Erlang applications such as MochiWeb, Riak, RabbitMQ, Zotonic, ejabberd and CouchDB OTP applications?
CouchDB had lot of problems with that but the newest sources published by Cloudant show CouchDB in rebar, so it must be otp compliant.
Riak - the same, on rebar (btw. the same devs rebar and riak). Btw2. it is very nicely written app, good place to learn good practices.
Zotonic source code looks like mess a little bit. I can see there 'application' etc. but directory structure do not look like any proper OTP node. Btw. even Licence is not added on the top of all modules :?
ejabberd is full of sups and apps, but it has also some interesting;) design choices, so maybe do not learn Erlang on this example.
The Hibari database app is definitely OTP-based. The server is broken into several OTP apps, including a small one for managing config and logging (gmt), a big one for the server itself (gdss), a small one for native Erlang clients (gdss_client), and separate OTP apps for each of the server-side protocol handlers (e.g. JSON-RPC, UBF, EBF/BERT).
Sometimes a picture is worth at least a few hundred words. I've got some screen captures from the Erlang "appmon" (application monitor) app that shows the supervisor-and-worker process tree. Sorry, the protocol handler apps aren't shown in image #01, but they would be if I had had them running when I captured the image.
The link is here: OTP 'appmon' screen shots
-Scott
MochiWeb follows basic OTP Design Principles: it utilizes supervisor(3) behaviour to restart crashed processes (module mochiweb_sup.erl), and gen_server(3) behaviour. However it implements many routines to process data, such as ones found in mochinum.erl for faster floating point numbers serialization and mochijson[2].erl to process JSON etc.
The bad thing with mochiweb (I made it clear why here) IMHO is that it uses questionable and officially undocumented (since 2003!) technique of modules parameterizing (module mochiweb_request.erl, notice -module(mochiweb_request, [Socket, Method, RawPath, Version, Headers]). in the head of the file). The same applies to another Erlang HTTP-library misultin (misultin_req.erl).
Correct me if I'm wrong.

Erlang - Riak clients

I am in trouble finding API for the "local Erlang client" for Riak.
Here is what Riak wiki says:
The local Erlang client is a tightly-integrated part of Riak and the Riak REST interface uses the Erlang client internally. You can find more information about the Erlang-native driver in the edoc API.
The link redirects to the main wiki-page. There is plenty of information on PBC Client though.
How do both clients compare and what are the pros and cons in using one or another?
The API for the native erlang client or edoc is found here
But I would second what Dan says. However, note that the PBC is still very much at the alpha stage of development and as far as I know does not yet have map reduce capabilities.
I would recommend using the PBC client. The performance is comparable to the native erlang client. It is also easier to decouple your application code from Riak. The native erlang client requires the entire Riak code base as a dependency.
From Riak 2.0 and on, it is highly recommended to use PB (Protocol Buffers) APIs over HTTP APIs. They have become a primary APIs, have more functionality and also is faster than HTTP APIs.
Getting Started with Erlang client
GitHub repo for official Riak Erlang client

Lua Webservice Connectivity

Is there any possibility to connect webservice using Lua Language in Scite editor? Otherwise Please help me how to connect webservice with Lua Language.
There are Lua modules that support connectivity at various protocol levels. At the lowest level, and probably required by most other solutions, is LuaSocket.
At a much higher level you will find modules like LuaCURL.
Also, the Kepler Project supports the implementation of web applications and services in Lua.
Finally, a lot of general "How do I use Lua to do this" kind of information is available at the Lua User's Wiki.

Is Erlang ready for business applications?

I would really like to know about support for the following in Erlang.
Support for Windows COM. COM support in itself covers all requirements regarding accessing Access, Excel and Word documents. Both read and write.
PDF generation and printing. Note printing is easy if it can be done on a Windows printer server. And many printers don't have any driver beside Windows.
And a good database support which doesn't make any task harder than doing it on a SQL server. Erlang Mnesia is OK, given that there is nothing harder to perform on Mnesia than on any SQL server.
The business app that I am planning to port will be web based. It will be nice if I could port it to GUI later, but asking for that might be too much for Erlang, I guess. I am OK with that.
Edit: I would like to add that support for MS-Office is not that a big deal. A language only needs to support COM. And the whole microsoft world will be at your door step. Even Perl/PHP/Python/Ruby has COM support. Though none of those languages were born for the Windows world.
Even if I'm a great Erlang/OTP fan currently developing my application server (http://code.google.com/p/tideland-eas/) in Erlang I think it's not the right tool for you. Erlang is brilliant in the domain of concurrency, distribution, and reliability. But you need a tough integration into the Microsoft world. So maybe you should take a look at F# to get at least a kind of Erlang feeling here.
If you want COM support you better work with more microsoft-friendly language
The same
The same, but erlang has ODBC interface that allows you to work with 'ordinary' SQL-servers. I know it can mysql, not sure for mssql
Anyway you should think about some helping applications like 'print_pdf.exe', 'change_word.exe' that would be managed by erlang system, but not one erlang application which doing everything. Please read about C Nodes and Erlang FAQ's question "What sort of applications is Erlang particularly suitable for?"
-- sorry my English )

Resources