• Приглашаем на Tarantool Meetup 10 августа



      Всем привет! 10 августа 2017 мы приглашаем архитекторов и разработчиков в московский офис Mail.Ru Group, где состоится Tarantool Meetup, посвященный архитектуре и реализации корпоративных микросервисов с использованием Tarantool. Мы поделимся с вами своими подходами к проектированию решений и покажем на примере двух простых сервисов как можно за два часа решить две типовые задачи. И традиционно будет много интересных технических дискуссий на самые разные темы! А если вы возьмете с собой ноутбук с установленным Docker, то сможете сами пощупать все своими руками. Программу читайте под катом.
      Читать дальше →
    • Master-master репликация и масштабирование приложений между всеми IoT-устройствами и облаком


        На фото представлены устройства, использованные для прототипирования. Как видно, за основу взята процессор x86 (Intel Edison)

        Всем привет. В этой статье я хотел бы поделиться опытом решения одной интересной проблемы, связанной с синхронизацией данных между IoT-устройствами и облачным приложением. Сначала я расскажу об основной идее и целях моего проекта, а затем подробно опишу его техническую сторону и реализацию: речь пойдет об ОС Contiki, базах данных, протоколах и подобных аспектах. В заключение я кратко перечислю технологии, использованные при построении системы.
        Читать дальше →
      • Приглашаем на IoT-хакатон от Mail.Ru Group и Intel 30–31 июля



          Intel и Mail.Ru Group приглашают всех желающих принять участие в хакатоне, посвященном интернету вещей. Хакатон пройдет в московcком офисе Mail.Ru Group 30–31 июля 2016 года.

          Интернет вещей не только дарит новые возможности, но и ставит новые задачи. Сегодня мы привыкли отвечать на вопросы, как хранить данные, какой протокол лучше выбрать и т. д. Но уже завтра к этим вопросам добавятся другие: какие данные собирать, как их считать, отображать, синхронизировать, как удаленно контролировать устройство, как сделать отказоустойчивое решение из кластера IoT-устройств.

          Над подобными вопросами мы и приглашаем вас подумать на хакатоне: найти уникальные способы решения задач промышленности, бизнеса и повседневной жизни, используя платформы Intel Edison и Tarantool. А мы обеспечим все условия и возможности для создания чего-то нового!
          Читать дальше →
        • Вы не знаете Node: краткий обзор основных возможностей

          • Перевод


          Ремарка от автора
          Это статья новая, но она не о новых возможностях. Она о core, то есть о платформе и о том что многие кто просто используют grunt, или webpack могут не подозревать, так скзать about fundamentals.

          Более подробно читайте:

          комментарии rumkin:
          habrahabr.ru/company/mailru/blog/283228/#comment_8890604

          комментарии Aiditz:
          habrahabr.ru/company/mailru/blog/283228/#comment_8890476

          комментарии Suvitruf:
          habrahabr.ru/company/mailru/blog/283228/#comment_8890430


          Идея этой публикации была навеяна серией книг Кайла Симпсона «Вы не знаете JavaScript». Они являются хорошим началом для изучения основ этого языка. А Node — это практически тот же JavaScript, за исключением небольших отличий, о которых я расскажу в этой статье. Весь код, приведённый ниже, вы можете скачать из репозитория, из папки code.

          Зачем вообще переживать насчёт Node? Node — это JavaScript, а JavaScript используется почти везде! Мир был бы лучше, если бы большинство разработчиков в совершенстве владели Node. Чем лучше приложения, тем лучше жизнь!

          Эта статья представляет собой реалистичный взгляд на наиболее интересные основные возможности Node. Ключевые моменты статьи:

          1. Цикл событий: освежаем ключевую концепцию, позволяющую реализовать неблокирующие операции ввода/вывода.
          2. Глобальный объект и процесс: как получить больше информации.
          3. Эмиттеры событий: интенсивное введение в событийную модель (event-based pattern)
          4. Stream’ы и буферы: эффективный способ работы с данными
          5. Кластеры: форкай процессы как профессионал
          6. Обработка асинхронный ошибок: AsyncWrap, Domain и uncaughtException
          7. Аддоны на C++: внесение своих наработок в ядро и написание собственных аддонов на С++
          Читать дальше →
        • Использование LSM-движка из SQLite 4 в качестве отдельной NoSQL базы данных с использованием Python

          • Перевод
          image

          На сегодняшний день две мои самые любимые темы — SQLite и key-value базы данных. И в этот раз я пишу сразу про обе: этот пост посвящён Python-обёртке для используемого в SQLite 4 key-value хранилища на основе LSM.

          Я не слишком внимательно отслеживаю релизы SQLite, но версия 3.8.11 привлекла моё внимание, поскольку в её описании заявлено серьёзное увеличение производительности по сравнению с 3.8.0. В сопроводительной информации я наткнулся на упоминание о новом экспериментальном расширении для полнотекстового поиска (о котором писал когда-то), и потому мне стало интересно, какая складывается ситуация с SQLite 4.

          Изучив доступную информацию, я обратил внимание, что одной из задач разработчиков было обеспечить в новых версиях интерфейс для подключаемых движков баз данных. На момент написания этого поста в SQLite 4 уже было два встроенных бэкенда, один из которых — key-value хранилище на основе LSM. В последние пару месяцев мне доводилось поиграться с Cython, пока я писал Python-обёртку для встроенных k-v хранилищ UnQLite и Vedis. И я подумал, что было бы неплохо применить Cython для создания интерфейса движка БД на основе LSM, используемого в SQLite 4.

          Разобравшись с исходным кодом SQLite 4 и крохотным заголовочным файлом LSM, я написал python-lsm-db (документация).
          Читать дальше →
        • Строим сервисы на базе Nginx и Tarantool

            Вам знакома такая архитектура? Хоровод демонов, пляшущих между web-server, cache и storage.



            Какие минусы такой архитектуры можно отметить? Решая задачи в рамках такой архитектуры, мы сталкиваемся с кучей вопросов: какой язык(и?) взять, какой I/O framework выбрать, как синхронизировать cache и storage? Куча инфраструктурных вопросов. А зачем решать инфраструктурные вопросы, когда надо решить задачу? Безусловно, можно сказать, что нам нравятся некие технологии X и Y, и перевести эти минусы в рамки идеологических. Но нельзя отрицать тот факт, что данные располагаются на неком расстоянии от кода (картинка выше), что добавляет latency, что может уменьшить RPS.

            Цель данной статьи — рассказать об альтернативе, которая построена на базе Nginx как web-server, bаlancer и Tarantool как App Server, Cache, Storage.
            Читать дальше →