How to monitor communication between two Erlang nodes - erlang

I'm playing around with distributed Erlang.
It's a great fun, but I want to reveal the magic a bit and see what is actually being sent between Erlang nodes.
Could you please suggest any Erlang modules or external tools available for this?
Thank you in advance!
UPDATE:
BTW, Debian users can install Wireshark using sudo apt-get install wireshark

How about a network sniffer, like tcpdump or Wireshark sniffing on 4369/tcp? Wireshark has a special filter for the erlang distributed protocol (see ERLDP in the list of built-in expressions).
For more low-level information about the protocol itself, see http://www.erlang.org/doc/apps/erts/erl_dist_protocol.html
Here's a capture sample, between a linux node and windows node:

Related

How do you pipe the visualizer output of drake to a port using MeshCat with pydake?

How do you setup MeshCat on an exposed port as an online interface to interact my drake program? Looking for a short example in pydrake. Presently attempting on Ubuntu 18.04 with pydrake.
Here's a simple example:
https://github.com/RobotLocomotion/drake/blob/165da3960ce2aede5558b27a6102d66bafa70b03/manipulation/util/geometry_inspector.py#L169
The header of that file also has some useful instructions.

How to install Torch on windows 8.1?

Torch is a scientific computing framework with wide support for machine learning algorithms. It is easy to use and efficient, thanks to an easy and fast scripting language, LuaJIT, and an underlying C/CUDA implementation.
Q:
Is there a way to install torch on MS Windows 8.1?
I got it installed and running on Windows (although not 8.1, but I don't expect the process to be different) following instructions in this repository; it's now deprecated, but wasn't deprecated few months ago when I built it. The new instructions point to torch/torch7 repository, but it has a different structure and I haven't been able to build it on Windows yet.
There are instructions on how to install Torch7 from luarocks, but you may run into issues on windows as well; I haven't tried this process. It seems like there is no official support for Windows yet, but some work is being done by contributors (there is a link to a pull request in that thread).
Based on my experience, compiling that deprecated repo may be your best option on Windows at the moment.
Update (7/9/2015): I've recently submitted several changes that fix compilation issues with mingw, so you may try the most recent version of torch7 and follow the build instructions in the ticket. Note that the changes only apply to the core lib and additional libraries may need similar changes.
This webpage hosted by New York University recommends installing a Linux virtual machine in order to run Torch7 on Windows through Linux. Another option would off course be to install a Linux dist in parallel with Windows 8.
Otherwise, if you don't mind running an older version of Torch, there is a Windows installer for Torch5 at SourceForge.
I think to use a GPU from inside the virtual machine, the processor and the motherboard should not only support VT-x , but VT-d should be supported too.
But the question is, if I use a CPU with VT-d supported, do you think there will be a significant loss in PCIe connections efficiency?
From what I understand,
VT-d is important if I want to give the virtual machines direct access to my hardware components (like PCI Express cards). Like directly attach graphics card to vm instead of host machine. Isn't that mean that the PCIe connections efficiency will be the same just like if it was the host?

How to make WiFi work for toshiba C850...?

I have a toshiba laptop c850, dual core. Toshiba does not provide any driver for Wi-Fi for Ubuntu 12.10. I am currently having problem in using DSL modem, Ethernet and Wi-Fi. Can anyone tell me the solution to this problem?
maybe you will find some information there :
http://www.linlap.com/toshiba_satellite_c850-c855
Wireless
A really up to date kernel is required for wireless support, at least
3.5.0 is recommended. Realtek has the Linux drivers available for download but they must be re-complied after upgrades to kernel.
As you commented, you got the Atheros Communications Inc. AR8162 Fast Ethernet Controller.
This is some guesswork here because there are several versions of the driver and some people state only one is working for them, I stick with the most popular for now.
First download this file from another machine:
https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5-u.tar.bz2
If you have Ubuntu or another Linux distro on your second machine you can use wget to download the file:
wget https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5-u.tar.bz2
Next, use your preferred method (preferably an USB Drive) to copy it to your target machine (Toshiba C850) and use the following commands in a terminal. Make sure you are in the right directory first and use cd to change to the directory where your downloaded file resides.
tar -xzvf compat-drivers-2013-03-28-5-u.tar.bz2
cd compat-drivers-2013-03-28-5-u
./scripts/driver-select alx
make
sudo make install
sudo modprobe alx
If this doesn't work try a reboot first then you can try one of the other versions, I can't tell which will work for you:
http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2012-02-28-p.tar.bz2
https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/04/compat-drivers-2013-03-04-u.tar.bz2
Sources (for further reading): This question on AskUbuntu and this thread in the Ubuntu forums.

Erlang shell - controlling two processes

I have a question about erlang shell and erlang vm.
We have to write simple client-server application in Erlang, but only for local enviroment, so no sockets or anything.
I wanted to write something resembling a communicator server, people could register and send messages to other people. The thing is that if I open up erl and start my server/register it I can control only one process from the erlang shell, so there is no fun in that because I can't talk to anybody.
Is it possbile to open 2 erlang shells that are connected to the same instance of vm or compile the client program, start the server from erlang shell and then run the compiled clients in the same vm?
It is possible to open two shells connected to one VM (regular and
rem shell).
You can control many processes from one shell, just spawn
them.
What you probably really want is many erl VMs talking to each
other, even on one host. Just run them in distributed mode (e.g. with
-sname) and from now on you can communicate with anyone with the same cookie.
One of places to look at while learning erlang: http://learnyousomeerlang.com/distribunomicon#alone-in-the-dark

Erlang on AIX 6

I am about to use AMQP for a project and would like to use RabbitMQ, as it looks to be a good implementation. My problem is that one of the platforms will be AIX 6, and I cannot find a installable binary for the platform. Even worse it looks like there is no port of erlang for AIX.
Can anyone give me a pointer to erlang for AIX 6 or at least a port that I can compile without too much pain. Thanks...
Are you aware that RabbitMQ is usually installed on one or more servers that are used exclusively for the MQ broker function? If you do it that way, perhaps you can justify some Linux or Solaris servers to run RabbitMQ.
If you can run a virtualization environment on AIX then a Linux or OpenSolaris VM would be the best way to go.

Resources