← All posts tagged Erlang

yzh44yzh
Erlang Когда-то не так давно я интересовался, а бывают ли в СНГ конфы по Эрлангу. Ну вот:
groups.google.com

Добавим к этому Льва Валкина в Киеве, Макса Лапшина в Новосибирске (ну и меня в Минске можно добавить) и получим, что они не просто бывают, а прям кишмя кишат :)
yzh44yzh
erlyvideo Erlang надо запомнить, как erlang из сорцов собирается. А то erlyvideo постоянно требует самого свежего эрланга, который есть только в сорцах

apt-get install ncurses-dev
apt-get install openssl libcurl4-openssl-dev

download erlang.org
untar
configure --with-ssl
make
make install
yzh44yzh
Erlang Пишу код, и он с первого же запуска работает правильно. То ли это я такой гениальный, то ли это эрланг такой простой :) Скорее второе :)
yzh44yzh
IDEA Erlang Я все таки сделал, чтобы плагин ErlGray plugins.jetbrains.net нормально работал в IDEA 10.5

Это было не особо сложно, но и не особо просто ) Завтра попрошу автора плагина, чтобы выложил мою версию в Plugins Repository )
yzh44yzh
Erlang Цитата (большая)

Было предложено внутреннее соревнование: команда программистов на Erlang'е и команда программистов на Java будут реализовывать одну и ту же систему, и дальнейшее будущее соответсвующего языка программирования в компании будет зависить от скорости и правильности реализации.

Несмотря на неопытнось команды на Erlang'е, она выиграла. С тех пор в компании используется преимущественно Erlang. Вся внутренняя кухня компании была переписана на нем, что положительно сказалось на компании в целом: с 2007-го компания ежегодно удваивает свою прибыль, растет и распространяется в другие страны, и уже обанкротила двух своих главных конкурентов на шведском рынке.

До Erlang'а система должна была справляться с 20 000 событиями, распределенными между 50 000 клиентами. Java не справлялась. Одна из главных причин — Java не освобождает память так быстро, как хотелось бы/надо. Так, финансовые данные не рапсреелены по времени, а приходят волнами. Java не успевала реагировать на происходящее и высвобождать память для событий.

На замену существующей системы с Java на Erlang понадобилось 6 месяцев. В то время, как в Java приходится бороться с инфраструктурой, компонентами, jar'ами и т.п., в Erlang'е этого нет. Технология относительно дешевая и требуется меньшее количество людей для достижения тех же результатов.

Люди привыкли к тому, что сервис предоставляется 24 часа в сутки 7 дней недели. Это то, что в SLA телекомов существовало давным давно. Поэтому и Erlang сам по себе преспособлен для такой работы.

Благодаря Erlang'у отсутствуют проблемы с управлением релизами. Проводится горячая замена кода прямо на production'е, система всегда «живая». Поэтому обновления проводятся минимум раз в день, желательно чаще.

Erlang привлекает талантливых программистов, но при этом он на них действует, как наркотик. Многие, попробовав Erlang, уже перестают интересоваться другими языками программирования.

В конце Дэвида спросили: а с технической точки зрения как проявился переход на Erlang? Очень хорошо: 20 Java-машин были заменены 2-мя с Erlang'ом. За последние три года было 48 секунд простоя. Система неубиваема.

erlanger.ru
yzh44yzh
Erlang Цитата:
"Как оказалось, сразу несколько человек независимо друг от друга (и в полной уверенности, что они — первые и единственные) производят аппараты для работы с прошивками в бортовых компьютерах автомобилей разных компаний. Erlang выбирается по двум причинам: простота, с которой можно реализовать любой протокол, и тот факт, что его можно уместить в маленькую «кастомную» коробочку с чипом от VIA и 256 метрами памяти.

Как мне позже рассказал один из разработчиков, такие коробочки разлетаются, как горячие пирожки. Немало тому способствует и тот факт, что он может лекго встраивать в аппарат работу с любым количеством протоколов, включая и работу с некорректно реализованными протоколами. Так что следующая диагностика вашей машины вполне может быть проведена такой вот коробочкой с Erlang'ом внутри :)"

erlanger.ru
yzh44yzh
Erlang Задумался, нужно ли мне заменить в erlypresence плагине dict на ets? Ну типа ets такие мега быстрые. Решил для начала написать тесты производительности для тех операций, которые мне реально нужны в планиге и с похожими данными.

Написал github.com

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

Получилась интересная штука
120> dict_ets_test:test().
num items 10000
test insert: D:118776 T:11093
test map: D:3952 T:15753
test search client: D:13 T:8
test search user: D1:4207 D2:11954 T:6114
test delete: D:18 T:8
ok
121> dict_ets_test:test().
num items 10000
test insert: D:116978 T:11798
test map: D:4226 T:15706
test search client: D:13 T:16
test search user: D1:4174 D2:18279 T:2793
test delete: D:28 T:7
ok
122> dict_ets_test:test().
num items 10000
test insert: D:129351 T:25091
test map: D:4495 T:14133
test search client: D:13 T:8
test search user: D1:4276 D2:11869 T:6756
test delete: D:32 T:8
ok
123> dict_ets_test:test().
num items 10000
test insert: D:93408 T:11256
test map: D:3961 T:15192
test search client: D:13 T:8
test search user: D1:4168 D2:12320 T:6831
test delete: D:30 T:9
ok

Получилось, что ets выигрывает только по скорости вставки новых элементов. А по всем остальным тестам сливает. dict:to_list гораздо быстрее, чем ets:tab2list, dict:filter быстрее, чем ets:select (я уже молчу про зубодробительный синтаксис ets:select). Ну а поиск по ключу и удаление по ключу и там и там мегабыстрые, так что по ним можно и не сравнивать.

Ну что ж, надо оставлять там dict, как оно и было сразу :)
yzh44yzh
Erlang Похоже я на Erlang уже трачу больше рабочего времени, чем на Flex :) Это радует.

В IDEA заглядываю пореже, а она, в благодарность, пореже тормозит.

Надо будет прочитать книжку Столлмана про Emacs )