Как стать автором
Обновить
2
0

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

Отправить сообщение

React: WebRTC Media Call

Время на прочтение23 мин
Количество просмотров16K


Привет, друзья!


В этой статье я покажу вам, как разработать приложение для совершения аудио/видео звонков с помощью WebRTC.


Функционал нашего приложения будет следующим:


  • при запуске приложения пользователь А получает уникальный идентификатор;
  • он передает этот идентификатор пользователю Б;
  • пользователь Б использует идентификатор пользователя А для совершения аудио или видео звонка;
  • пользователь А получает уведомление о звонке пользователя Б и может ответить на него с видео или без либо отклонить звонок;
  • в процессе соединения пользователи имеют возможность включать/выключать аудио и видео;
  • после завершения звонка выполняется перезагрузка WebRTC для обеспечения возможности совершения нового звонка.

Демо приложения.


Репозиторий с исходным кодом.


Основной источник вдохновения.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 9: ↑7 и ↓2+6
Комментарии2

K8s кластер в Oracle Cloud для Always Free аккаунтов

Время на прочтение6 мин
Количество просмотров10K

На хабре уже не раз писали про бесплатные вычислительные ресурсы (ARM, 4 CPU, 24ГБ), которые можно развернуть в Oracle Cloud. После регистрации вы получаете $300 и 30 дней триального аккаунта, когда для развёртывания доступны все виды ресурсов. Когда эти 30 дней заканчиваются, аккаунт получает статус Always Free, и количество доступных ресурсов значительно урезается. Чтобы снова получить доступ к ним ко всем, можно сделать upgrade своего аккаунта до Pay-as-You-Go. Это односторонняя операция, переход обратно на Always Free невозможен, и после такого перехода нужно аккуратно следить и и контролировать траты. Тем не менее, Pay-as-You-Go аккаунты также могут бесплатно использовать Always Free ресурсы.

Oracle Cloud предоставляет возможность managed развёртывания K8s кластера (в документации он называется OKE – Oracle Container Engine for Kubernetes), однако он недоступен для Always Free аккаунтов.

Чтобы обойти это ограничение, используем подход полностью ручного выделения облачных ресурсов (сети, виртуальных машин) и установки необходимых компонентов. На выходе получим кластер с четырьмя узлами (один control-plane и три worker'а) с установленным K8s'ом, балансировщиком нагрузки, публичным IP адресом и (бонусом) бесплатным доменом. Воспроизводимые Terraform скрипты (и readme по их использованию) опубликованы на github'е.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии10

Как улучшить межсерверное взаимодействие и сэкономить время разработчика

Время на прочтение11 мин
Количество просмотров7.9K

Привет! Я Алексей, Java-разработчик. В статье поделился опытом внедрения подхода Contract-First в backend. 

Под катом подробности:

— что такое Code-First и зачем переходить на Contract-First,

— как перестать писать API-объекты руками и сэкономить 12 человеко-недель в спринт,

— как поддерживать однотипный код и API, если у вас 100+ микросервисов и 60 бэкендеров.

Читать о внедрении Contract-First
Всего голосов 13: ↑12 и ↓1+13
Комментарии5

Инструменты для решения NER-задач для русского языка

Время на прочтение5 мин
Количество просмотров5.6K

Зачастую приходится работать с большими объемами документов, к примеру, исполнительными листами, заявлениями, договорами, из текстов которых нам необходимо извлечь весьма конкретную информацию: ФИО, даты рождения, наименования должности, паспортные данные, адрес, ИНН и наименование компаний, даты подписания документов и так далее. Всё это относится к задаче распознавания именованных сущностей (NER). Какие инструменты могут помочь нам в решении данной задачи для русского языка?

Пожалуй, первое что приходит в голову Data Scientist’у, когда речь идет о NLP или конкретно NER-задачах — это проекты DeepPavlov. Немного углубимся в данную тему, разберем все по порядку.

DeepPavlov — это фреймворк (open source), который помогает в разработке различных голосовых ботов, соответственно, решая различные NLP задачи.

На вход подается непредобработанный (регистры, знаки и т.д. сохранены) текст, а на выходе мы хотим увидеть, так называемые, спаны — фрагменты текста, с которыми уже можно работать (например, отнести к определенной категории).

Читать далее
Всего голосов 5: ↑4 и ↓1+7
Комментарии0

5 советов для C#-программистов, которые вы, наверняка, уже знаете

Время на прочтение14 мин
Количество просмотров22K

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

Читать далее
Всего голосов 19: ↑13 и ↓6+7
Комментарии6

gRPC в .NET — рецепты счастья

Время на прочтение12 мин
Количество просмотров24K

Массовый переход от монолитов к микросервисам решает ряд проблем:

раздельный деплой и рефакторинг;

удобное масштабирование частей системы;

прозрачное разграничение ответственности команд;

снижение бласт-радиуса;

снижение когнитивной нагрузки на разработчика.

При этом создает другие проблемы: взаимодействие сервисов существенно сложнее и дороже, чем взаимодействие объектов в памяти. Частично упростить его можно с помощью протокола gRPC.

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

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

По материалам выступления на конференции DotNext.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии63

Видеонаблюдение на даче

Время на прочтение7 мин
Количество просмотров53K

Обратились ко мне за помощью. Задача стояла: подключить и настроить комплект видеонаблюдения на даче. Опыт в этой сфере был минимальный, баловался дома с USB камерами. И на работе была уже настроенная система с отдельным сервером. Представление было как устроено видеонаблюдение, благо есть опыт в IT сфере.

Для статьи я старался найти оригиналы фото устройств. У некоторых качество хромает. Остальные будут взяты с интернета.

Установку видеонаблюдения начали в 2019 году. Вносили изменения вплоть до конца 2021 года. Интересное началось, когда заказчик захотел проверять камеры из дома.

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии109

Уязвимость Safari 15 может легко раскрыть вашу личность любому веб-сайту

Время на прочтение6 мин
Количество просмотров7.8K

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2+13
Комментарии3

Начало работы с Playwright (Часть 2)

Время на прочтение5 мин
Количество просмотров13K

Добро пожаловать  на 2-й день челленджа #30DaysOfPlaywright!

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

30 команд Git, необходимых для освоения интерфейса командной строки Git

Время на прочтение9 мин
Количество просмотров440K

Git — самая популярная в мире распределённая система контроля версий. Линус Торвальдс, разработчик ядра ОС Linux, создал этот инструмент ещё в 2005 году, а сегодня Git активно поддерживается как проект с открытым исходным кодом. Огромное количество открытых и коммерческих проектов используют Git для контроля версий.

В данной статье перечисляются самые основные команды, которые следует знать разработчику, чтобы освоить управление репозиториями GitHub на высоком уровне. Ознакомиться с ними будет полезно как новичкам, так и опытным разработчикам.
Читать дальше →
Всего голосов 64: ↑49 и ↓15+54
Комментарии63

Латунирование, это просто

Время на прочтение7 мин
Количество просмотров39K

Эта статья - простая и подробная инструкция, как можно в домашних условиях покрыть латунью металлические детали, применяя только подручную химию. cut/ В ней, подробно описанны все ньюансы и "подводные камни". После прочтения этой статьи, у вас просто не может не получиться делать такие же превращения деталей, как на картинке.

Читать далее
Всего голосов 102: ↑100 и ↓2+129
Комментарии75

Лучшие альтернативы для Docker

Время на прочтение7 мин
Количество просмотров60K

Изобретение интермодальных контейнеров вызвало бум международной торговли и стало одним из основных элементов глобализации

Контейнеры от компании Docker произвели настоящую революцию в разработке, тестировании и развёртывании приложений. Хотя вовсе не она изобрела Linux-контейнеры. Ведь LXC и OpenVZ появились раньше под Linux, а до них много лет существовали Jails/Zones в BSD/Solaris.

Но именно Docker представил контейнеры в виде удобного и простого «массового продукта». Примерно как Apple позаимствовала идеи MP3-плеера и смартфона и доработала их. То же самое сделал Docker. Хотя не довёл дело до конца, то есть до получения прибыли.

Сейчас компания Docker разваливается на глазах. Однако Linux-контейнеры отлично работают и без неё, это же опенсорс.
Читать дальше →
Всего голосов 25: ↑18 и ↓7+19
Комментарии35

ABBYY FastML: новый подход к машинному обучению на стороне клиента для обработки большого потока документов

Время на прочтение10 мин
Количество просмотров7.6K

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

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

Например, представим, что на обработку поступают десятки тысяч инвойсов от сотен разных контрагентов. Раньше, чтобы автоматизировать их классификацию и извлечение информации, требовалось наработать базу поставщиков, а для каждого из типов документов — создать вручную гибкое описание (задать информацию о линейных отношениях полей относительно друг друга). Внедрение такого решения у клиента длилось от 3 до 6 месяцев.

Чтобы упростить и ускорить эту задачу и в целом облегчить работу нашим заказчикам, мы создали новый механизм кластеризации и разработали технологию FastML, а затем объединили их работу.

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

Но обо всем по порядку.

Читать далее
Всего голосов 11: ↑10 и ↓1+14
Комментарии0

Компилятор C# 10, .NET 6 и интерполяция строк

Время на прочтение24 мин
Количество просмотров18K

К старту курса по разработке на C# делимся материалом из блога .NET о том, как компилятор C# 10 и .NET 6 упрощают программирование, как они обращаются с форматированием, а также о причинах конкретных решений команды .NET. И это далеко не всё. За подробностями приглашаем под кат.

Читать далее
Всего голосов 27: ↑25 и ↓2+25
Комментарии60

.NET, что с тобой происходило в 2021?

Время на прочтение6 мин
Количество просмотров17K

Конец декабря, многие подводят свои итоги, а мы решили оглянуться и посмотреть, что хорошего (и не очень) случилось в мире .NET-разработки за этот год, и спросили об этом наших разработчиков.

Из хорошего называли появление рекордов в С# 9, и выход С# 10, а в топе, конечно же, релиз .NET 6 с долгосрочной поддержкой. До выхода шестой версии у нас уже много веб-сервисов работало на .NET 5, в том числе и в монолите. Теперь ко всем «фишкам» пятой версии добавляются преимущества новой.

Платформа становится всё кросплатформеннее и кросплатформеннее (возможно, благодаря этому в последнее время наблюдается рост интереса к C#). В .NET 6 сильно улучшилась производительность, появилась поддержка Apple Silicon (мы недавно писали, почему так рады этому), новые API и много других полезностей.

Что ещё запомнилось
Всего голосов 46: ↑46 и ↓0+46
Комментарии22
Собираетесь перейти в IT или повысить квалификацию? Мы собрали все образовательные инициативы Microsoft в подобие адвент-календаря, чтобы было удобно ориентироваться.
Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии5

Протокол безопасности транспортного уровня (TLS), версия 1.2 (RFC 5246) (Часть 3.1)

Время на прочтение38 мин
Количество просмотров9.2K

В статье приводится продолжение перевода на русский язык стандарта IETF - RFC 5246, описывающего работу протокола безопасности транспортного уровня TLS версии 1.2. Данная часть перевода охватывает первую половину описания работы протокола рукопожатия TLS 1.2.

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии0

Графовый анализ — обзор и области применения

Время на прочтение15 мин
Количество просмотров25K

Всем привет!

Мы - команда GlowByte Advanced Analytics. Сегодня мы расскажем об одном из перспективных направлений Data Science - графовом анализе, и покажем, какие задачи можно решать с его помощью.

Цель статьи - показать многообразие бизнес-областей, в которых можно применять графовые подходы.

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии5

.xlsx изнутри. Разбор структуры файлов. Разбор каждого .xml файла

Время на прочтение25 мин
Количество просмотров52K

Это статья о разборе excel изнутри. Вы узнаете как работать со стилями ячеек, листов через xml, как вносить данные и формулы в ячейки и мого другого.

Читать далее
Всего голосов 85: ↑85 и ↓0+85
Комментарии74

Защита браузера от фингерпринтинга — опыт Brave

Время на прочтение7 мин
Количество просмотров8K

На Хабре есть множество (раз, два, три, четыре) статей про идентификацию и слежку за пользователями при помощи снятия браузерных «отпечатков», но почти ничего про современные методы превозмогания этих коварных атак на нашу приватность в сети. Восполним этот пробел путём описания способа защиты, который реализован в единственном браузере на рынке.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии24

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность