LINUX.ORG.RU

77
Всего сообщений: 145

Facebook Erlang

https://www.opennet.ru/opennews/art.shtml?num=52952

Дополнительно можно отметить появление информации о разработке компанией Facebook нового варианта языка Erlang со статической типизацией, который позволит повысить эффективность работы инфраструктуры мессенжера WhatsApp.

Пытался найти больше инфы чем одна вакансия, но не нашел. У кого-то есть подробности? Вроде Facebook давно хотела переписать все с Erlang-а.

 , ,

Artamudo ()

Пример макроса

Как с помощью макроса подсчитать число вызовов функции в модуле?

 

Uncle_Bobby ()

Портировать модуль с MongooseIM для ejabberd

MongooseIM — форк ejabberd (XMPP-сервер, написанный на Erlang).

Задача:

- Портировать mod_jingle_sip (модуль для прозрачной трансляции звонков из Jingle/XMPP в SIP и наоборот) в ejabberd (структура модулей у них похожая, однако есть достаточно mongooseim-специфичных вещей)

- Добавить поддержку XEP-0262 (ZRTP/Jingle), а протокол XEP-0320 (DTLS-SRTP/Jingle) сделать опциональным (т.е. на выбор ZRTP или DTLS-SRTP).

За всё это предлагаю эквивалент €700 в Bitcoin.
Также по итогам работы нам возможно (!) потребуется разработчик под подобные штуки (erlang/C) на постоянной основе (но это пока не точно!)


Спасибо за внимание.

 , , ,

annerleen ()

Умер Joe Armstrong, автор Erlang

Сегодня утром, в возрасте 68 лет, умер Джо Армстронг (Joe Armstrong), один из создателей языка программирования Erlang. RIP.

 ,

dotcoder ()

Деплой Erlang-приложений

Привет, ЛОР.

Расскажи мне, как ты деплоишь свой код на энларге? В данный момент наше приложение просто заворачивается в пачку RPM и таким образом закидывается в продакшен, но мне этот подход кажется немного гомосексуальным, потому что завязывает нас на CentOS и старые версии всего. Админы напирают на Docker, но я слегка сомневаюсь.

Как это делать наиболее правильно? Спасибо.

 ,

hateyoufeel ()

Необычное поведение программы erl. Не работают ни операторы, ни функции в интерактивном режиме.

Добрый день.

Сегодня установил пакет erlang на Arch Linux через pacman.

sudo pacman -S erlang

Поставился erlang 10.2

Необычное поведение выражено в сеансе интерпритатора снизу:

➜  ~ erl
Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]

Eshell V10.2  (abort with ^G)
1> 2 + 3
1> 1 + 1
1> 
1> 
1> q()
1> 
1> init:stop()
1> 
1> 
1> 
User switch command
 --> q
➜  ~ 
Как видно, ни операторы, ни функции «не работают». Выйти получается только через Ctrl + G, q.

Так же не меняется число в приглашении к вводу. В чем может быть проблема? Как можно вылечить?

 , ,

Arssham ()

Erlang. Параметры в vm.args

Добрый день подскажите где прочесть или что значит, в документации Erlangdf есть параметр

+K true
+zdbbl
Смотрю настройки RabbitMQ, там тоже есть эти параметры но со знаком минус
-K true
-zdbbl
Не могу найти, что означает параметр с +, а что с -. Точнее с знаком плюс есть на сайте Эрлланга http://erlang.org/doc/man/erl.html# zdbbl а вот с минусом нет :(

Подскажите, пожалуйста.

 

darksmoke ()

Спалил Ъ-Erlang'истов за работой

 ,

mos ()

Erlang Heap Memory

Добрый день Досталось Эрланг приложение. И при большой нагрузки оно падает с ошибкой

Slogan: eheap_alloc: Cannot allocate 49515520 bytes of memory (of type «heap»).

  • как можно указать лимит этой памяти при запуске приложения?
  • Кто то имеет опыт мониторинга забиксом эрланг приложения?

 ,

darksmoke ()

Inko Programming Language

Решил притащить на обсудить Inko: https://inko-lang.org/

Хз, нужно оно в реальном мире или нет, когда есть python/ruby/elixir.
Но вдруг у кого-нибудь есть умные мысли на этот счёт. :)


Inko is a gradually-typed, safe, object-oriented programming language for writing concurrent programs. By using lightweight isolated processes, data race conditions can not occur. The syntax is easy to learn and remember, and thanks to its error handling model you will never have to worry about unexpected runtime errors.

Inko runs on 64 bits Linux, BSD, Mac OS, and Windows. 32 bits platforms may work, though they are not officially supported at this time.



ps: в тегах питон, руби, эрланг и эликсир потому, что автор считает их основными конкурентами инко. А раст потому, что ВМ написана на нём.

 , , , ,

blackst0ne ()

Как подключится к уже запущеной ноде Erlang'a?

Как подключится к уже запущеной ноде Erlang'a?

Делаю так: erl -sname my_app -setcookie COOKE

Получаю: Protocol 'inet_tcp': the name my_app@my_comp seems to be in use by another Erlang node

 

darksmoke ()

Работа с systemd без sd_notify

Мы переводим наш flussonic на работу с systemd и я захотел воспользоваться его механизмом подтверждения того, что приложение запустилось.

Стандартный и официальный способ — использовать библиотеку systemd и использовать оттуда функцию sd_notify

Например для эрланга для этого есть библиотека https://github.com/systemd/erlang-sd_notify и похожее есть и для других платформ.

С этим подходом есть проблемы: 1) в любой современный язык втаскивать библиотеку на С — это задача, гораздо более неприятная, добавить библиотеку на самом языке. 2) в современных крутых платформах есть очень развитые подсистемы для работы с сокетом, а эта libsystemd делает чего-то, непойми что и не встраивается ни в libevent, ни в эрланговский event loop, ни в торнадо под питон.

Я решил сделать попроще, чего и вам советую:

https://gist.github.com/maxlapshin/01773f0fca706acdcb4acb77d91d78bb

ready() -> call(<<"READY=1">>).
reloading() ->call(<<"RELOADING=1">>).
stopping() -> call(<<"STOPPING=1">>).
watchdog() -> call(<<"WATCHDOG=1">>).


call(Call) ->
  case os:getenv("NOTIFY_SOCKET") of
    false ->
      {error, not_configured};
    Path ->
      case gen_udp:open(0, [local]) of
        {error, SocketError} ->
          {error, SocketError};
        {ok, Socket} ->
          Result = gen_udp:send(Socket, {local,Path}, 0, Call),
          gen_udp:close(Socket),
          Result
      end
  end.

в принципе вот всё, что нужно для работы с systemd. По ссылке более полный код на эрланге, его легко переписать за 10 минут на %LANG%

Понятно, что systemd не обещает сохранять api, но я бы вообще не стал рассматривать systemd как что-то очень продуманное и что не будет меняться следующие 10 лет. Всё равно всё будут перекраивать

 ,

max_lapshin ()

Erlang. Посоветуйте код который является образцом для подражания.

Всем привет.
Спасибо.

 

denisE ()

Вы говорите что XMPP мертв и не нужен?

Тем временем, Eve Online Chat, с марта будет использовать ejabberd вместо своего велосипеда.

With the March release, we’ll be updating the chat system in EVE Online, moving from the custom solution we’ve been using since EVE was initially designed, to an industry standard XMPP chat server that will offer better performance and flexibility for the future.

-- Eve Online Blog: Preparing for the future -- retirement of Eve Voice

CCP Games, создатели Eve Online: https://github.com/ccpgames/ejabberd

Ну и конечно плюсик Эрлангу.

Подробнее: https://medium.com/processone/eve-online-chat-is-moving-to-ejabberd-8e73d40fa887

 , ,

mimimimi ()

ssh-proxy: как дать человеку доступ на сервер, не давая ему приватный ключ

https://github.com/flussonic/ssh-proxy

Есть сотрудник, который может уволиться с работы. Есть сервера, принадлежащие нашим клиентам, на которые ему надо организовать доступ по ssh.

Как пустить сотрудника на сервер так, что бы потом можно было отозвать доступ и больше не пускать?

Часто в маленьких командах раздают всем приватный ключ, после увольнения сотрудника это превращается в неприятную проблему.

Мы решили попробовать сделать ssh-proxy, организованный на подобие гитозиса: публичные ключи сотрудников лежат в папке, приватный лежит на сервере.

Можно залогиниться как ssh root/clientserver@sshproxy.company.com и тогда сразу попадешь на root@clientserver

Сейчас реализовано: 1) авторизация сотрудников по публичным ключам 2) проксирование текстовых команд

Не реализовано:

1) разграничение прав, кому куда ходить можно и не можно 2) тунеллирование, scp, sftp. Этого вообще нет из коробки в эрланге, надо будет допиливать ему stdlib 3) ещё кучи чего наверное

Будет ли это полезно и интересно кому-нибудь ещё?

 , , ,

max_lapshin ()

Eruangu mnesia video

 , , , ,

Unununij ()

Очереди в Erlang.

Всем привет.
Может кто подскажет как реализовать быструю очередь если в нею будет писать параллельно много процессов и так же много процессов будут из нее извлекать.

 

denisE ()

Книга: «Введение в Elixir»

Всем привет. Вот ссылка на книгу Введение в Elixir вышел перевод только в этом году. Кому нужно забирайте(скачивайте,бесплатно).
P.S. Пожалуйста, кто может создайте тег «elixir»

 , , , ,

oster2011 ()

Clojure for the Erlang VM

Its main goal is to combine the power of the Erlang VM with the expressiveness of Clojure to provide an interesting, useful result that might make the lives of many programmers simpler and make the world a happier place.

https://clojerl.github.io/clojerl/

 ,

Eva ()

Mint 18.2 ошибка «Can not link the wx driver»

Господа, прошу помочь новичку. Система обновлена, ставлю erlang:

wget http://www.erlang.org/download/otp_src_19.3.tar.gz tar --xvf otp_src_19.3.tar.gz cd otp_src_19.3.tar.gz ./configure

на этом этапе выпадает ошибка: wx:Can not link the wx driver, wx will NOT be useable

Уже поставлено:

( читать дальше... )

 , ,

Feo740 ()