• Конференция KazooCon 2015 — как это было

      5-6 ноября в вечнозелёном городе Сан-Франциско (Калифорния, США) прошла третья ежегодная конференция KAZOOCon, посвящённая сервисам и продуктам облачной телефонии 2600hz KAZOO.

      Конференция прошла в двухдневном формате и была наполнена интересными докладами и демонстрациями.

      Эта статья представляет собой краткий отчёт об участии в конференции.
      Читать дальше →
    • Почему я ставлю на Elixir

      • Перевод
      6 лет я создавал приложения на языке Ruby и фреймворке Rails. Я щупал всякие новые языки программирования по мере их выхода, но Elixir – первый из них, который меня действительно увлёк.

      В своё время Ruby уделал всех


      Язык Ruby и фреймворк Rails полностью поменяли способ создания веб-приложений. Они дали начало религии ценностей для сообщества программистов. Они первые предложили идею, согласно которой инструменты программиста должны быть оптимизированы для продуктивной и радостной разработки.

      Именно они постулировали, что задача тестирования и доведения кода до работоспособного состояния лежит на разработчиках. Другие языки и фреймворки насмехались над таким подходом, пока он не начал завоёвывать популярность. После этого они стали включать принципы, присущие сообществу Ruby, в другие языки и фреймворки.

      image

      Ruby прошёл путь от скромного положения невразумительного языка до одного из самых популярных языков, в основном из-за фреймворка Rails и огромного лидерского потенциала таких людей, как DHH, Wycats, Aaron Patterson, Jose Valim и множества других. Но периодически, и тут и там начинают вылезать артефакты, оставшиеся из-за такого скромного старта языка.

      Убегающая память


      Зед Шо [Zed Shaw] в посте "Rails – это гетто" разглагольствует на тему проблем со сборкой мусора, из-за которых первые приложения на Rails перезапускались каждые 4 минуты.

      Один из самых популярных серверов для Rails сегодня – это unicorn. Моё веб-приложение – это приложение для Rails, оно довольно простое, по сравнению с другими приложениями, которые я разрабатывал. Я перенёс его на сервер с 512 Мб памяти, и после нескольких дней работы мой unicorn съел всю доступную память и приложение начало тормозить.

      Решение? unicorn-worker-killer. Не слишком отличается от более ранних решений.
      Читать дальше →
    • Как оптимизировать работу интернет-магазина. Часть 1. Автоматический прозвон входящих лидов

        Через неделю после выхода предыдущей статьи, где я рассказывал о сборке бота для Telegram, ко мне за консультацией обратился интернет-магазин наручных часов, который к тому моменту уже построил некоторые процессы для своих нужд. При росте бизнеса они столкнулись с проблемой обработки большого количества входящих заявок, а от быстрой реакции на заявку зависит, купит человек продукт или нет.

        Здесь я опишу их кейс оптимизации процессов интернет-магазина с помощью Corezoid.com и дам в открытый доступ ссылку на шаблон процесса, описанного ниже.

        Что необходимо сделать:
        1) Добавить лид в CRM (в данном случае это Bitrix24) c заполнением всех необходимых дополнительных полей.
        2) Уведомить продавцов о пришедшем лиде или ошибке.
        3) Уведомить клиента об успешно принятом заказе, а так же рассказать о дополнительной акции (попытаться подогреть клиента, повысить средний чек).

        На входе имеем:
        1) Имя и телефон клиента, которого заинтересовал наш товар.
        2) Определенный по ip город клиента.
        3) Таймзону клиента.
        4) Идентификатор партнера (реф-ссылка в cookies), от которого пришла заявка.

        Решением стало связка API нескольких сервисов через Corezoid.com, а именно: Bitrix24 (СRM-система) + VoxImplant (сервис для реализации обратного вызова) + Telegram (messenger).
        Читать дальше →
        • +9
        • 13,8k
        • 6
      • Riak и Riak Search Yokozuna: Первое знакомство



        В статье в ознакомительных целях рассматривается процесс создания простого хранилища простых текстовых документов на базе Riak версии 2.1.1 и организация поиска по ним с помощью Riak Search (Yokozuna). В качестве клиентской библиотеки используется официальный клиент для Erlang.

        Для начала представим, что у нас есть огромное количество таких документов:
        • title — заголовок;
        • body — содержимое;
        • tags — тэги;
        • created_at — время создания;
        • smiles — количество смайликов (плюсиков, лайков, как хотите)

        и огромное количество пользователей, желающих их изменять. Кому интересно, начнём.
        Читать дальше →
      • Пишем на JS в функционально-декларативном стиле

        • Tutorial


        Введение


        Я люблю функциональные языки за их простоту, ясность и предсказуемость. Пишу в основном на Elixir / Erlang / OTP, пробовал другие языки, но Erlang с его акторами пока мне гораздо ближе чем например Lisp или Haskell. Как известно Erlang == web, а у чего-либо написанного для веба порой бывает клиентский веб-интерфейс: html, css, js — содержимое. Увы js это стандарт современного веба, для него есть библиотеки почти под любую задачу почти на все случаи жизни, да и это более-менее единственное доступное средство что-то выполнить в браузере на стороне клиента. Поэтому нам всё-таки нужен js. Сперва мне подумалось «Лямбды и функции высшего порядка есть, значит писать на js будет просто. Выучу синтаксис и буду писать так же как пишу в Erlang/Lisp/Haskell». Как же я ошибался.
        Читать дальше →
      • Как написать свой NIF в Elixir

        Совсем недавно я окунулся в мир роботики и решил запрограммировать собственного робота на основе RasPi. Для этого я использовал Elixir, сравнительно новый, к слову сказать, язык программирования, который компилируется в байткод для Erlang VM. У меня сразу же возникла трудность с управлением контактами GPIO. Тогда я нашел библиотеку, которая вроде бы решала все мои проблемы. Однако она была написана как Port, из-за чего каждый вызов ее функций занимал слишком много времени, что влияло на правильность работы моего робота.

        Немного подумав, я все-таки решился переписать библиотеку в виде NIF. Так как я не нашел много информации по этому поводу, я решил поделиться своим опытом написания NIF в Elixir с вами. Как пример я буду использовать то, что я создал.
        Читать дальше →
      • Немного о синтаксисе Erlang

        • Перевод
        Изначально я планировал выпустить этот опус как дополнение к книге “Learn You Some Erlang”, однако его содержание больше соответствует редакционному материалу, нежели хорошему справочному документу, поэтому я решил просто написать об этом в блоге.

        Многие новички в мире Erlang успешно изучают его и начинают играться, не вступая с ним в тесное знакомство. Я прочитал много жалоб именно на синтаксис и эти “козьи шарики” (ant turds — ориг.) — «веселый» способ называть символы ,, ;, .. Например, «Как же они бесят», а также многое другое.

        Я упоминал в книге, что Erlang берет свое начало из Prolog. Это дает нам понять, откуда берутся все эти знаки препинания, но это, увы, не заставляет людей проникнуться любовью к подобной пунктуации. И правда, почему-то никто не говорит мне: «А-а! Prolog! Что ж ты раньше не сказал!» Ввиду этого я предлагаю три возможных способа человеческого чтения кода на Erlang, дабы сделать мир добрее.
        Читать дальше →
      • Post Hawk перешёл на https

          Здравствуй, %habrauser%!

          У меня для тебя короткая, но очень важная новость. В предыдущих постах было много критики относительно того, что сервис использует незащищённое соединение. С настоящего момента этот вопрос можно считать решённым. Все компоненты сервиса перешли на https и wss.
          Читать дальше →
          • –14
          • 2,1k
          • 9
        • Наш доклад на «Стачке»: «Как избавиться от persistent database зависимости»

            10-11 апреля наша команда приняла участие в крупнейшей в регионах России ИТ-конференции «Стачка», которая прошла в четвертый раз в Ульяновске. ИТ-компании представили свои стенды, где можно было познакомиться с их продуктами, узнать про вакансии, принять участие в конкурсах.

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

            За два дня на 8 площадках выступили 130 экспертов и в общей сложности прозвучало 150 актуальных докладов по различным направлениям. Наш разработчик Алексей Ключников представил свой доклад на тему “Делаем интерактив в мобильных играх или как избавиться от persistent database зависимости” на примере нашего флагмана Magic Jigsaw Puzzles (2M MAU, 600K DAU и до 50K онлайн-игроков c интерактивным взаимодействием).

            Ниже приведен текст его выступления:

            Читать дальше →
          • Post Hawk. Перезагрузка



              Здравствуй, %habrauser%!

              С момента первой публикации прошло уже полгода. За это время в сервисе произошло много изменений. Новый сайт. Доработанная документация. Улучшенное апи.
              Подробнее

            Самое читаемое