Search
Write a publication
Pull to refresh
65
0
Дмитриев Сергей @antirek

Пользователь

Send message

Тестируем играючи: мастер-мастер репликация в Tarantool

Reading time10 min
Views4K


В качестве примера мастер-мастер кластера Tarantool я предлагаю сделать небольшую текстовую мультиплеер-игру, где каждый участник стремится набрать большее число очков.


Каждый игрок будет некоторым узлом, который меняет данные в игровом мире. Эти данные реплицируются между узлами. Таким образом, репликация Tarantool будет являться своего рода транспортом для игрового процесса.

Способы и примеры внедрения утилит для проверки безопасности Docker

Reading time13 min
Views14K

Привет, Хабр!

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

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

Как мы переводили MIKOPBX с chan_sip на PJSIP

Reading time7 min
Views16K

MIKOPBX - это бесплатная АТС с открытым исходным кодом на базе Asterisk 16. Год назад мы взялись за переход на PJSIP. Основные причины:

- PJSIP поддерживает "множественную регистрацию"

- PJSIP более гибок в настройке

- chan_sip не развивается, объявлен deprecated в Asterisk 17

Читать далее

Реализация аудиоконференций в Telegram + Asterisk

Reading time5 min
Views14K


В предыдущей статье я описывал реализацию выбора пользователем места жительства при регистрации в моем telegram боте, который я создавал вдохновившись идеей «Телефонного эфира». В этой же статье я опишу интеграцию бота с Asterisk .
Читать дальше →

Новости Yii 2020, выпуск 6

Reading time5 min
Views9.9K

Всем привет!


Почти три месяца прошло с последнего выпуска новостей. От нас почти ничего не было слышно. Мы работали. После расширения команды Yii 3 я больше занимаюсь управлением, ревю, проектированием и обсуждениями, чем непосредственно кодом. Получается неплохо. В общем темп ускорился, и мы всё ближе к нашим целям.


Активность на официальном форуме и форуме yiiframework.ru стала совсем низкой если сравнивать со временами Yii 1 и Yii 2. Сообщество перешло в разные социальные сети и чаты.


Я думаю, что такая миграция — это плохо. В соцсетях и чатах практически невозможно найти предыдущие ответы. Одни и те же вопросы повторяются практически каждый день и ответы не оседают в поиске. Почти уверен, что тот, кто первым начнёт собирать вопросы и ответы и публиковать их как статьи в wiki или посты в блоге, станет довольно популярным.


А теперь перейдём к тому, что же интересного случилось с последнего выпуска.

Читать дальше →

NodeJS: 12 пакетов для продуктивности разработчика

Reading time6 min
Views7.6K


Менеджер процессов для продакшна с балансировщиком нагрузки. Обёртки над отладкой и хуками Git, защита express-приложений через HTTP-заголовки, утилита в более чем 180 функциями для работы с датами и другие инструменты, которые сэкономят ваше время. Подборка особенно полезна начинающим разработчикам NodeJS, но может порадовать опытных скептиков.
Добро пожаловать под кат!

20 инструментов Android-разработчика, о которых вы могли не знать

Reading time7 min
Views17K

Набор полезных, но не очень известных инструментов и библиотек Android.

Работая над статьями о 30 лучших библиотеках и проектах Android 2019 г. и 25 лучших библиотеках и проектах Android 2020 г., я наткнулся на множество замечательных инструментов и проектов, которые могут пригодиться в разработке приложений для Android — ниже они приведены в случайном порядке. Пользуйтесь!

Читать дальше

[Личный опыт] Работа в Uber в Амстердаме: как устроена разработка, карьерный рост, подготовка к интервью

Reading time9 min
Views23K

В нашем блоге мы уже не один раз рассказывали о переезде в Нидерланды (раз, два). Разработчики, которые оказались в Амстердаме в один голос говорят о том, что с точки зрения технологий и подходов к разработке среди местных ИТ-компаний в лучшую сторону выделяется Uber.

Сегодня нам удалось поговорить Алиной Коваленко, которая работает в компании в должности Software Engineer II. Алина поделится своим опытом переезда и даст несколько полезных советов.

Поехали!

Объединяем закрытый WhatsApp и открытый SIP – Часть 1

Reading time4 min
Views18K
Предыдущая статья «Как избежать блокировки в WhatsApp», хотя и получила много минусов, но тем не менее в течение 2 суток была самой читаемой статьей на Хабре – набрала более 20 тыс просмотров.

Поэтому я решил что нужно продолжать с хакингом монстров рассказывать о различных способах использования WhatsApp для бизнеса.

Всем кому интересно – добро пожаловать под кат.
Читать дальше →

Архитектура современных корпоративных Node.js-приложений

Reading time12 min
Views100K
Ох, не зря в названии намёк на нетленку Фаулера. И когда фронтенд-приложения успели стать настолько сложными, что мы начали рассуждать о высоких материях? Node.js… фронтенд… погодите, но Нода же на сервере, это бэкенд, а там ребята и так всё знают!



Давайте по порядку. И сразу небольшой дисклеймер: статья написана по мотивам моего выступления на Я.Субботнике Pro для фронтенд-разработчиков. Если вы занимаетесь бэкендом, то, возможно, ничего нового для себя не откроете. Здесь я попробую обобщить свой опыт фронтендера в крупном энтерпрайзе, объяснить, почему и как мы используем Node.js.
Читать дальше →

Переключение шаблона страниц во vuejs

Reading time6 min
Views15K

Иногда в приложении требуется шаблоны для различных страниц, чтобы не копировать код от компонента к компоненту, мы прописываем шаблон в основном компоненте (он же, обычно, App.vue) и с помощью <router-view> подставляем в него различные вьюшки.


image

Как мы видим, у различных страниц общая шапка. Сайт.

А что, если нам необходимо сделать несколько шаблонов для разных страниц или состояний приложения? Этим мы сейчас и займемся.

Читать дальше →

Go-swagger как основа взаимодействия микросервисов

Reading time9 min
Views26K


Здравствуй, NickName! Если ты программист и работаешь с микросервисной архитектурой, то представь, что тебе нужно настроить взаимодействие твоего сервиса А с каким-то новым и ещё неизвестным тебе сервисом Б. Что ты будешь делать в первую очередь?

Если задать такой вопрос 100 программистам из разных компаний, скорее всего, мы получим 100 разных ответов. Кто-то описывает контракты в swagger, кто-то в gRPC просто делает клиенты к своим сервисам без описания контракта. А кто-то и вовсе хранит JSON в гуглодоке :D. В большинстве компаний складывается свой подход к межсервисному взаимодействию на основании каких-либо исторических факторов, компетенций, стека технологий и прочего. Я хочу рассказать, как сервисы в Delivery Club общаются друг с другом и почему мы сделали именно такой выбор. И главное — как мы обеспечиваем актуальность документации с течением времени. Будет много кода!
Читать дальше →

Asterisk — это болид «Формулы-1», а не рейсовый автобус

Reading time13 min
Views9.4K

Asterisk — фи, это же моветон


Здравствуйте уважаемые читатели этого замечательного ресурса. По уже сложившейся традиции — являюсь давним читателем habr'а, но только сейчас решил сделать пост. Что, собственно, побудило к написанию? Честно сказать, и сам не знаю. То ли притянутые статьи о производительности FreeSWITCH/Yate/3CX/etc в сравнении с Asterisk, то ли действительные, реальные проблемы архитектуры последнего, а, возможно, желание сделать что-нибудь уникальное.


И что удивительно, в первом случае, как правило, сравнивают мягкое и теплое, так сказать, FreeSWITCH/Yate/etc и FreePBX. Да-да, именно FreePBX. Это не опечатка. Причем интересно, что во всех сравнениях зачастую один Asterisk в дефолтной конфигурации. Ну, вы знаете, эта конфигурация — загруженные все имеющиеся модули, кривой диалплан (FreePBX как бы способствует) и куча остальной необъективщины. Что до родовых болячек Asterisk'а — да, объективно их вагон и маленькая тележка.


Что со всем этим делать? Разрушать стереотипы и исправлять родовые травмы. Этим и займемся.

Читать дальше →

Urban Bot или как писать чат-ботов для Telegram, Slack, Facebook… на React.js

Reading time11 min
Views21K

image


В этой статье я хочу познакомить с новой библиотекой Urban Bot, которая адаптирует React для написания чат-ботов. Ниже я расскажу, зачем эта библиотека появилась на свет, какие дает преимущества и как написать вашего первого чат-бота.


Чат-бот — это чаще всего отдельный чат в мессенджере, в котором вы общаетесь не с человеком, а с программой. Он может присылать сообщения в виде текста, изображений, кнопок и многих других UI элементов и реагировать на сообщения от пользователей. Современные чат-боты — это полноценные UI приложения внутри мессенджеров.

В отличии от большинства чат-бот библиотек, которые чаще всего просто оборачивают http запросы в функции с готовыми аргументами и предоставляют подписки вида bot.on('message', callback), иногда позволяя передавать контекст между вызовами, Urban Bot предлагает совершенно иной подход к разработке чат-ботов — через декларативное программирование и компонентный подход. Живой пример, написанный на Urban Bot, вы можете попробовать в Telegram, cсылка на чат-бот, и посмотреть код на GitHub.


Как мы заметили выше, чат-боты это полноценные UI приложения. А какой язык в 2020 и какая библиотека наиболее подходит для разработки UI приложений? Правильно, JavaScript и React. Такая интеграция позволяет легко и непринужденно строить чат-боты любой сложности без единого знания об API мессенджеров. Далее я расскажу, как создавать простые компоненты и на их основе строить сложных чат-ботов, работать с навигацией, создавать диалоги любой вложенности, писать одно приложение и запускать в любых мессенджерах, и многое другое.

Читать дальше →

Об обществе людей и их свободе

Reading time7 min
Views62K
Прочитал с интересом статью про Китай и его Интернет, она вызвала неоднозначное отношение. Потом прочитал комментарии — пришел в кромешный ужас.

Сперва думал написать комментарий сам, но быстро понял, что текста получается слишком много. Поэтому сформулирую отдельный текст.

Господа, мы же инженеры. Почти ученые. Люди, привыкшие в рассуждениях опираться на логику и объективные критерии. Ну вот, например, скажите мне на милость — ну какое универсальное определение понятия «свобода» выдержит эту очаровательную максиму «никакой свободы врагам свободы»? Это же чистая попытка присвоения понятия свободы себе. А оно не может принадлежать кому-либо.

И прежде, чем минусовать меня, прочитайте, пожалуйста, моё маленькое рассуждение на тему «что такое свобода». Это эссе не претендует ни на новизну, ни на революционность. Оно призвано лишь немного понизить градус агрессии в социуме, который мне близок и дорог. И заставить людей думать. Прежде всего, о других людях.


Читать дальше →

Получение видео из Tik Tok без водяного знака

Reading time4 min
Views15K
Добрый день, всем любителям habr. В этой статье я хочу поделиться с Вами как можно получить видео с Tik Tok без водяного знака, с помощью такого языка как PHP.

В настоящее время Tik Tok набирает популярность и было бы не прилично не написать про него маленькую статейку, и так, меньше слов, больше дела.

Создадим класс под названием TikTok, он будет содержать три метода и одно свойство.

Методы:

  • cUrl (curl запрос)
  • redirectUrl (получить ссылку после redirect)
  • getUrl (получить ссылку на видео)

Свойства:

  • public $url;
Читать дальше →

Голосовой бот + телефония на полном OpenSource. Часть 1 — создание и обучение текстового бота RU

Reading time4 min
Views13K

В наше время голосовые роботы набирают огромную популярность, от банального заказа такси, до продаж клиентам. Создание голосового бота сводится к трем базовым этапам.
Читать дальше →

Цикл статей «Изучаем VoIP-движок Mediastreamer2» одним pdf-файлом

Reading time1 min
Views1.2K


Здравствуйте, по материалам опубликованного мной ранее цикла статей, я подготовил pdf-файл, который представляет собой книгу с перекрестными ссылками, предметными указателями и т.д. В общей сложности 113 страниц.


Файл можно свободно скачать по ссылке: pdf-файл

Программные IP-АТС, E1, DSS-1 и нагрузочное тестирование

Reading time4 min
Views6.6K
Всем доброго вечера! Сегодня я решил написать про тестирование протокола DSS-1 в IP-АТС, начнем как всегда с теории, рассмотрим преобразования сообщений из SIP в DSS-1, поговорим про анализаторы протоколов и закончим нагрузочным тестированием.
Читать дальше →

Totum — open source конструктор CRM/ERP и произвольных учетных систем (PHP + PgSQL)

Reading time12 min
Views26K


В двух словах — продвинутые таблицы. Ориентирован на отдельных разработчиков или микрокоманды из двух-трех человек. Подходит начинающим разработчикам и бизнес-аналитикам, желающим превратить свое понимание бизнеса в готовое решение или быстро разработать проект под конкретного клиента. Для небольших бизнес-ниш — в которых нет типовых решений. Small-code принцип — множество простых, ситуационных кодов. Есть подробная документация и видео. Устанавливается на собственный сервер за 5 мин. Со временем позволит выгружать разработанные на нем решения с коммерческими лицензиями с использованием встроенной защиты.

Читать дальше →

Information

Rating
10,523-rd
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity