Рубрика «erlang» - 7

Erlang для самых маленьких. Глава 1: Типы данных, переменные, списки и кортежи
Добрый день, дорогие читатели.

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

От автора

Я очень люблю функциональное программирование, и один из моих любимых языков — Erlang. К моему сожалению на русском языке представлено очень мало учебных пособий по этому замечательному языку и этот факт меня сильно печалит. На сколько я знаю, на русский переведен всего один учебник.

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

Вместо этого я хочу написать цикл статей об этом языке, взяв за основу эту книгу. Ну и, как мне кажется, хабр — лучшее место для их публикации. Хочу обратить внимание: эти статьи — не вольный перевод вышеуказанного учебника. Мысли изложенные в книге — это основа, план повествования. Конечно, во многом они будут совпадать, но так же есть и интересные моменты из других публикаций и личного опыта (хоть и скромного).

Читать полностью »

Привет!

Сегодня появилась новая версия Erlang плагина для IntelliJ IDEA.

Что нового?

C выхода прошлого релиза прошло уже 7 месяцев, а значит вас ждёт много нового:

  • Новые и улучшенные рефакторинги: introduce function, extract/inline variable и другие
  • Новые инспекции: unresolved include/include_lib, unresolved function и другие
  • Навигация по коду: включенные файлы, результаты тестов, callbacks
  • Улучшения совместимости с IntelliJ-based средами разработки
  • Расширена поддержка цветовых схем и форматирования, в том числе поддержка comma-first style
  • Поддержка EUnit: запуск тестов из редактора, перезапуск упавших тестов
  • Улучшено автодополнение для аттрибутов, функций и модулей
  • Улучшена сборка проекта: debug_info, parse_transforms, behaviours, сборка с помощью Rebar
  • Дебаггер (experimental)
  • И многое другое

Читать полностью »

Добрый день, уважаемые читатели Хабра. Как часто вы смотрите за актуальностью той или иной платформы? Если вы хороший специалист, то, наверное, всегда. Если же нечасто – пожалуй, пора начать это делать. Мы подготовили перевод исследования американского блогера Бена Подгурски (Ben Podgursky), позволяющего понять уровень оплаты программистов, в зависимости от языков программирования. Бен использовал в качестве источника данные пользователей на GitHub. Данный пост набрал большой рейтинг на Hacker News.

image

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

О чем это я?

С чего начинается практически каждое web-приложение на Erlang? Не знаю, у кого как, а у меня, как правило, со строчек кода, ответственных за запуск Ковбоя и обслуживание запросов. С функции обновления правил роутинга. Причем всегда это одно и то же — только роуты отличаются, порт и количество акцепторов, может быть. И это можно сделать проще. Догадались уже, к чему я клоню? Нет, это не очередной фреймворк. Это превращение встраиваемого ковбоя в отдельно запускаемое приложение. То есть мы пишем наше приложение, хендлеры Ковбоя, но сам Ковбой не трогаем. Вообще. Ни зависимостей не указываем, ни при старте приложения не запускаем. Любопытно? Добро пожаловать под кат.
Читать полностью »

Оригинал статьи: smyck.net/2012/04/22/why-erlang/

Шансы, что вы читаете эту статью на устройстве с многоядерным процесcором, растут каждый день, вот почему все постоянно говорят про параллелизм (concurrency). Параллелизм для наших web приложений и API бэкендов, это когда вывод htop выглядит примерно как на картинке:

Concurrente htop

Я недавно был на великолепной Ruby конференции и три или четыре доклада были про параллелизм. Сообщество Ruby достаточно открыто и обсуждалось достаточно много возможностей: использовать потоки, использовать различные среды выполнения Ruby, чтобы обойти GIL, использовать больше процессоров, использовать модель акторов через библиотеки как Celluloid или даже использовать Akka через JRuby.

В то время как модель акторов, кажется, хорошо подходит для создания сетевых параллельных приложений, которые часто страдает от проблем, если среда выполнения, на которой реализовано приложение не имеет нативной поддержки. Существуют реализации для Ruby, Python и Java, но все они должны подстраиваться, чтобы достичь нормальной работы и не обязательно результат даёт наилучшую производительность. Это одна из многих причин, почему Erlang был бы намного лучшим выбором, но сначала, давайте немного уделим время модели акторов, чтобы понять, почему это так хорошо работает.

Читать полностью »

Привет!
В этом туториале я планирую показать тем, кто еще не знаком с веб-сервером Cowboy, как им пользоваться. Для людей, которые имеют опыт работы с ним, данный туториал врядли будет интересен, а вот для тех, кто знает о Ковбое лишь по наслышке — welcome!

Что мы будем делать:

  1. Простейшая установка и запуск сервера
  2. Краткий обзор роутинга, обслуживание статики
  3. Шаблонизация с помощью ErlyDTL (Django Template Language для Erlang)

Читать полностью »

Интересно, скольким из вас приходилось хотя бы иногда, но повторять рутиные действия для настройки автодеплоя с гитхаба на сервер: создать ssh-ключ, добавить его для репозтория проекта на Гитхабе, создать скрипт, который будет слушать какой-то адрес, добавить вебхук в интерфейсе гитхаба, который будет дергать этот скрипт… Уфф… А что, если я скажу вам, что автоматизировал все эти действия по-максимуму? Да, теперь вам нужно выполнить всего пару команд и автодеплой запущен и работает! И все это благодаря Гитхабайзеру :)
Читать полностью »

Я придумал Erlang, потому что его не существовало
Автор статьи — Joe Armstrong, разработчик Erlang

Я, как программист-старожил, люблю иногда вспоминать свою молодость …

Когда, в далеком 1967, я только начинал учиться программировать, я выбирал между языками Fortran и Algol. Про Algol ходило множество слухов, но практически никакой полезной информации нельзя было найти, так что я начал с Fortran.

На написание одной программы в среднем уходило 3 недели:

неделя 1 — написание программы на бумаге и отправка в компьютерный центр, где мне делали перфокарты;
неделя 2 — проверка перфокарт, и загрузка их в компьютер;
неделя 3 — получение и анализ результатов.

Когда компилятор доходил до первой синтаксической ошибки в программе, — он останавливался, и это отбрасывало меня обратно в самое начало, к первой неделе. Для исправления 10 ошибок в программе могло потребоваться 30 недель!Читать полностью »

Новые детали о Parallella Board
Если вы помните, в октябре был пост о сборе средств на Kickstarter для проекта Parallella — нового типа многоядерного процессора с высоким соотношением производительности к потреблению энергии. Компания удалась и принесла 900 тысяч долларов. Первые платы будут отправлены бейкерам в мае.

Разработчики завершают дизайн и разводку платы в ближайшие недели. Читать полностью »

Сегодня вышел Erlang плагин для IntelliJ IDEA версии 0.4 — он совершенно бесплатно превращает IDEA в полнофункциональную IDE для Erlang.

Нововведения

  • Интеграция с Rebar в том числе запуск Eunit тестов через Rebar
  • Поддержка Erlang типов: навигация, автодополнение, переименование и т.д.
  • Внешняя (Shift + F1) and local (Ctrl + Q) документация для OTP функций и модулей
  • Подсказка параметров фукнции (Ctrl + P)
  • Go to symbol (Ctrl + Alt + Shift + N)
  • Улучшено автодополнение для BIFs (включает BIFs для OTP модулей, например lists:member/2)
  • Поддержка темной схемы Darcula и улушение синтаксической подсветки
  • И многое другое, смотрите полный список изменений

Со времен выхода версии 0.1 (с июля 2012 года) изменений еще больше. Если кто-нибудь попробовал самую первую сборку и остался недоволен, то сейчас самое время попробовать заново.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js