Від перекладача: «Elixir і Phoenix — прекрасний приклад того, куди рухається сучасна веб-розробка. Вже зараз ці інструменти надають якісний доступ до технологій реального часу для веб-додатків. Сайти з підвищеною інтерактивністю, багатокористувацькі браузерні ігри, микросервисы — ті напрямки, в яких дані технології послужать хорошу службу. Далі представлений переклад серії з 11 статей, докладно описують аспекти розробки на фреймворку Фенікс здавалося б такий тривіальної речі, як блоговый движок. Але не поспішайте кукситься, буде дійсно цікаво, особливо якщо статті спонукають вас звернути увагу на Еліксир або стати його послідовниками.

У цій частині ми закінчимо рутинну роботу над коментарями, щоб потім перейти до більш цікавим речам.
Читати далі →

image

Якщо ви зачаровані мовою Elixir, то приходьте 16 березня о 19:00 на Мансарду Rambler&Co. Ми поговоримо про Elixir, Phoenix Framework, Erlang OTP і доведемо перевагу наших buzzwords над будь-якими іншими.

Читати далі →

КПДВ
Функціональний мова програмування Elixir набирає популярність, а один з останніх фреймворків для створення односторінкових додатків — Angular 2 — нещодавно вийшов реліз. Давайте познайомимося з ними в парі статей, створивши з нуля повноцінний back-end на Elixir і Phoenix Framework, забезпечує даними клієнтське додаток-frontend на базі Angular 2.
Hello, world
— не наш варіант, тому зроблене при необхідності можна буде застосувати в реальних проектах: весь представлений код викладений під ліцензією MIT.
Обсяг статті великий величезний! Сподіваюся на таку ж величезну кількість коментарів — будь-яких. Не раз помічав, що з коментарів отримуєш не менше, ніж від основної статті, а іноді і більше.
У першій статті буде кілька вступних слів і робота над back-end. Поїхали!
Читати далі →

Деплой Elixir-додатків

Deploy Exilir Applications
Дана стаття бере участь у конкурсі від Wunsh.ru — російськомовне співтовариство Elixir. Практики і просто співчуваючі — приєднуйтесь!
У статті розглянуто процес налаштування програми для релізу на віддалений сервер. Для такого не легкого справи в світі Elixir існує два хороших проекту, перший це
Distillery
, якої робить білд програми і другий це
Edeliver
, якій дозволяє здійснювати гарячу заміну коду. Нижче наведено базові інструкції по використанню цих двох бібліотек на прикладі найпростішого Elixir-додатки. А також стаття розповість яким чином можна покращити деплой завдяки використанню
docker
контейнерів.
Distillery
Distillery
призначений для автоматизації генерації релізів Elixir проектів! Є спадкоємцем Exrm від того ж автора. Дуже простий у використанні.
насамперед необхідно додати
distillery
в залежності проекту. А після виконати
mix deps.get
.
Читати далі →

Брошура про Ecto – інтерфейс для роботи з базами даних на Elixir

екто
Вступ
Ecto написаний на Elixir DSL для комунікації з базами даних. Ecto це не ORM. Чому? Так, тому що Elixir не об'єктно-орієнтована мова, от і Ecto не може бути Object-Relational Mapping (об'єктно-реляційних відображенням). Ecto — це абстракція над базами даних складається з декількох великих модулів, які дозволяють створювати міграції, оголошувати моделі (схеми), додавати або оновлювати дані, а також посилати до них запити.
Якщо ви знайомі з Rails, то для вас найближчою аналогією, звичайно ж, буде його ORM ActiveRecord. Але ці дві системи не є копіями один одного, і гарні у використанні в рамках своїх базових мов. На даний момент актуальна версія Ecto 2, вона сумісна з PostgreSQL і MySQL. Більш рання версія додатково має сумісність з MSSQL, SQLite3 і MongoDB. Незалежно від того, яка використовується СУБД, формат функцій Ecto буде завжди однаковий. Також Ecto йде з коробки з Phoenix і є гарним стандартним рішенням.
Якщо надумаєте розширити брошуру, то милості прошу приєднатися до розвитку цього репозиторію https://github.com/wunsh/ecto-book-ru
Нововведення Ecto 2.X
Читати далі →

Використання rebar3 для управління проектами на Erlang


Rebar3 — це інструмент для мови програмування Erlang, який дозволяє легко і зручно управляти проектами, написаними на Erlang (іноді і на Elixir).
Люди вже давно знайомі з Erlang знають старий rebar і, можливо навіть, до цих пір його використовують. Багатьом (особливо тим, хто прийшов з інших мов з набагато більш розвиненою екосистемою) rebar не подобався і час від часу його там і тут називають "ганебної підробкою", яку можна було б замінити скриптом на Perl. На щастя багато працювати з rebar мені не доводилося (на відміну від автора, вище наведених слів), але з базовими речами rebar справлявся досить таки непогано. Але "непогано" — це не "добре". Незгодних з таким положенням справ (з "непогано") виявилося не мало і тому вони вирішили дати арматурі друге життя у вигляді проекту
rebar3
, який нині активно розвивається. Над проектом серед інших працює небезызваестный сер Фред Хеберт, якого знають ті, хто читав книгу "Вивчай Erlang в ім'я добра!".
Читати далі →

Розширення API від Vk для стікерів на Elixir

image
Введення
У Вк є набори стікерів, деякі з яких навіть безкоштовні. Але у Вк немає жодного публічного API для використання даного функціоналу на сторонніх сайту. Завдання полягає в тому, щоб використовуючи функціональний мова Elixir написати розширення над місцем зберігання стікерів у Вк у вигляді API.
На мою думку імена методів, і параметри, які вони приймали були б наступними. Загальним простором імен для колекції API методів для роботи зі стікерами було б ключове слово
stickers
, а самі методи можливо виглядали б так:
stickers.get
— з наступними параметрами:
pack_ids
,
pack_id
,
fields
;
stickers.getById
— з наступними параметрами:
sticker_ids
,
sticker_id
,
fields
.
Так як немає можливості створювати або редагувати стікери, які є у Вк, дане API буде мати тільки read-only методи. Чесно, важко вгадувати, і не хочеться наслідувати розробників соціальної мережі, з цього обмежуся тільки придумуванням назв методів. І не буду реалізовувати API в стилі Вк, хоч це б додало спільної ідентичності розширення.
Ось такі методи буду реалізовувати для роботи зі стікерами:
Методи для наборів:
GET /packs
GET /packs/{id}
GET /packs/{id}/stickers

Методи для стікерів:
GET /stickers
GET /stickers/{id}
GET /stickers/{id}/pack

Читати далі →

json-api-normalizer: легкий спосіб подружити Redux і JSON API

JSON API + redux
останнім часом набирає популярність стандарт JSON API для розробки веб-сервісів. На мій погляд, це дуже вдале рішення, яке нарешті хоч трохи стандартизує процес розробки API, і замість чергового винаходу велосипеда ми будемо використовувати бібліотеки як на стороні сервера, так і клієнта для обміну даними, фокусуючись на цікавих завданнях замість написання сериалайзеров і парсерів в сто перший раз.

Читати далі →

Створення движка для блогу з допомогою Phoenix і Elixir / Частина 7. Додаємо коментарі / Новорічний анонс в ув'язненні



Від перекладача: «Elixir і Phoenix — прекрасний приклад того, куди рухається сучасна веб-розробка. Вже зараз ці інструменти надають якісний доступ до технологій реального часу для веб-додатків. Сайти з підвищеною інтерактивністю, багатокористувацькі браузерні ігри, микросервисы — ті напрямки, в яких дані технології послужать хорошу службу. Далі представлений переклад серії з 11 статей, докладно описують аспекти розробки на фреймворку Фенікс здавалося б такий тривіальної речі, як блоговый движок. Але не поспішайте кукситься, буде дійсно цікаво, особливо якщо статті спонукають вас звернути увагу на Еліксир або стати його послідовниками.

У цій частині ми підготуємо фундамент для коментарів, щоб потім оживити їх за допомогою каналів Phoenix.


Читати далі →

Elixir в біоінформатиці



У цій статті я розповім про свою спробі використання бібліотеки GenStage, а зокрема модуля Flow, для реалізації одного з алгоритмів біоінформатики. Протягом останніх двох років я займався розробкою комплексної системи зберігання і пошуку результатів метагеномного аналізу (метагеномика) вуглеводневої сировини. Напевно, для багатьох це китайська грамота. Фактично такий аналіз означає виявлення всіх типів мікроорганізмів, що мешкають, наприклад, у покладах нафти. Деякі з цих мікроорганізмів, переважно бактерії, здатні роз'їдати сталеві труби і створювати безліч інших несприятливих ефектів.

Читати далі →