Search
Write a publication
Pull to refresh
0
@DeepXread⁠-⁠only

User

Send message

JavaScript: делаем селфи с помощью браузера

Reading time13 min
Views12K



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


В этой статье я покажу вам, как делать селфи в браузере.


Мы разработаем простое приложение со следующим функционалом:


  • при инициализации приложение запрашивает у пользователя разрешение на захват медиапотока (далее также — поток) из видеокамеры его устройства;
  • захваченный поток передается в элемент video;
  • из потока извлекается видеотрек (далее также — трек), который передается в интерфейс для захвата изображений;
  • из экземпляра интерфейса извлекается список поддерживаемых возможностей (capabilities) и настроек (settings) для фото;
  • из трека также извлекается список поддерживаемых возможностей и настроек;
  • формируется список диапазонных полей (<input type="range">) для установки настроек для фото;
  • пользователь имеет возможность снимать фото (take photos) и захватывать фреймы (grab frames);
  • фото выводится в элемент img, генерируется ссылка для его скачивания;
  • фрейм инвертируется и отрисовывается на холсте (canvas), генерируется ссылка для его скачивания.

Репозиторий.


Приложение будет разработано на чистом JavaScript.


Для создания шаблона приложения будет использован Vite.


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

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

Как создавать уникальные лабиринты

Reading time11 min
Views17K

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

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

Почему у двух детей в одной семье может быть разный иммунитет

Reading time10 min
Views14K

Даже у близнецов вероятность одинакового иммунитета стремится к нулю

Если ребёнок часто болеет, не надо думать, что виноват обязательно иммунитет.

Иммунитет формируется средой, а гены задают возможные границы формирования. Близнецы будут иметь совершенно разный набор иммунных реакций к совершеннолетию: один в три года пожал кошке лапу на прогулке, а второй нет, у кого-то обучение системы пошло по другим шаблонам и захватило другие сигнатурные белки патогенов, а у другого — нет (и при мутации того же вируса гриппа обучение первого не пригодилось), кто-то налегал на кашу, а кто-то пробовал все окрестные фрукты с деревьев и так далее.

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

Это не так.

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

Давайте поговорим, как вы можете повлиять на иммунитет, понять, когда всё же надо к врачу. И как распознать реальный иммунодефицит.
Читать дальше →

Джентльменский набор для создания WPF-приложений

Reading time18 min
Views52K

Данная статья представляет собой набор рецептов по созданию WPF приложений. Поэтому скорее всего она будет интересна начинающим разработчикам. В материале описаны основные моменты использования таких пакетов как ReactiveUI, Material Design in XAML Toolkit, LiveChart2. Примеры кода приведены из реального приложения.

Далее

Добавляем рекламу в мобильное приложение. AdMob для начинающих

Reading time5 min
Views22K

Политика монетизации - одна из самых важных составляющих мобильного приложения. Доходит и до того, что разработчики сначала продумывают маркетинговую схему, а уже потом натягивают на нее геймплей. Сейчас существует множество проверенных способов повысить ARPU (Average Revenue Per User) своей игры: лутбоксы, батлпасы, прямые продажы апгрейдов или косметических предметов. В этой статье мы рассмотрим самый простой, старый, но от этого не менее эффективный способ получения прибыли с мобильного приложения - внутриигровая реклама, а так же поговорим о том, как внедрить ее в Unity на примере Google AdMob.

Читать далее

HTML5 и алгоритм разметки документов

Reading time16 min
Views15K

Все мы уже  знаем, что для создания веб-сайтов лучше всего использовать HTML5. Сейчас мы обсудим то, как правильно использовать HTML5. Одной из важных частей HTML5, которую до сих пор не все понимают, является разделение содержимого на разделы: section, article, aside и nav. Чтобы понять разделение содержимого, нам нужно понять алгоритм разметки документа. Понимание алгоритма структурирования документа может оказаться непростой задачей, но оно того стоит. Вы больше не будете ломать голову над тем, какой элемент использовать - section или div - вы будете знать это сразу. Более того, вы будете знать, почему эти элементы используются, и именно знание их значения является самым большим достоинством изучения алгоритма.

Все мы уже  знаем, что для создания веб-сайтов лучше всего использовать HTML5. Сейчас мы обсудим то, как правильно использовать HTML5. Одной из важных частей HTML5, которую до сих пор не все понимают, является разделение содержимого на разделы: section, article, aside и nav. Чтобы понять разделение содержимого, нам нужно понять алгоритм разметки документа. 

Читать далее

Как победить scroll в javascript

Reading time15 min
Views22K

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

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

В частонсти, в статье рассмотрены следующие вопросы:

- Как сделать таблицу с фиксированной шапкой и скроллом в body?

- Как быть, когда cодержимое таблицы съезжает относительно шапки при появлении скролла? Как избежать использования overflow: 'scroll' в данной ситуации. Установка css-переменной scroll-width.

- Оптимизация и кастомизация скролла: плавность, scroll margin, изменение цвета и формы.

Читать далее

Фотореалистичная графика на уровне ААА в Unity

Reading time12 min
Views31K

До сих пор распространено мнение о том, что Unreal Engine превосходит Unity в графическом плане, но так ли это в действительности? (Спойлер: нет.)

Такое мнение сформировалось по ряду причин. Одна из причин отсылает нас к 2015 году, когда в Unity был доступен лишь встроенный конвейер рендеринга с рядом ограничений. На тот момент добиться сопоставимого с Unreal Engine визуала было очень сложно. Другой причиной является порог входа в Unity: он довольно низкий, а начинающим программистам и дизайнерам совсем не очевидна концепция компонентной системы Unity, что порождает довольно много слухов по сей день.

Сегодня с уверенностью можно сказать, что на качество графики, независимо от выбранного движка, влияют настройки средств визуализации, ведь параметры постобработки в Unreal Engine и Unity одинаковы.

Всем под кат! Далее мы расскажем, как добиться фотореалистичной графики в Unity.

Читать далее

Компьютерра 2007. Культ сокобана

Reading time8 min
Views16K

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

Читать далее

Беспроводная гирлянда на новогоднюю ёлку

Reading time4 min
Views15K

Всем привет! До Нового года остались считанные часы и я спешу всех вас поздравить с наступающими праздниками. А также предлагаю посмотреть короткое видео о том, как я сделал себе маленькую новогоднюю ёлку с беспроводной гирляндой на светодиодах. Этот DIY-проект настолько прост, что его может повторить даже первоклассник.
Читать дальше →

Извлечение хэша NTLM с помощью профилей PowerShell

Reading time8 min
Views16K

Метод повышения привилегий, продемонстрированный в этой статье, является вариантом, используемым шпионскими группами. В нем описывается возможность использования злоумышленниками встроенных функций PowerShell для выполнения произвольных команд в контексте с повышенными правами (правами Администратора). Ниже приведена демонстрация извлечения хэшей NTLM.
Читать дальше →

FFmpeg libav с нуля. Часть 1: знакомство и начало работы

Reading time4 min
Views19K

Всем привет! Сегодня я хочу открыть серию статей по изучению FFmpeg libav с нуля.

Сразу уточню, что в основном статьи направлены на программирование, используя библиотеки libav*, где в качестве языка выступит С++.

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

Читать далее

Простой SMS-шлюз на Raspberry Pi

Reading time9 min
Views23K
Иногда случается так, что надо отправлять откуда-нибудь SMS-сообщения. При этом неважно — откуда именно. Речь может идти о домашней системе, объединяющей кучу устройств (эти системы называют «homelab»), из которой надо отправлять уведомления. Это может быть система сигнализации, информирующая своего владельца о разных событиях, требующих его внимания. Возможно это — программный комплекс, которому нужно подтверждать правильность телефонных номеров, вводимых его пользователями. Во всех этих случаях, да и во многих других, SMS-сообщения были и остаются наилучшим способом передачи неких уведомлений по инициативе отправителя.

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

Очевидное решение всех этих проблем заключается в поддержке собственного SMS-шлюза.

Результат этого проекта: устройство, поддерживающее полнофункциональный REST API, способное отправлять и получать сообщения

Как, с минимальными затратами, самостоятельно сделать такой шлюз?
Читать дальше →

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

Reading time24 min
Views19K

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

Читать далее

QOI: как сжимать изображения в 20 раз быстрее STBI и без потерь

Reading time5 min
Views8.1K

У представленного месяц назад формата сжатия изображений QOI уже есть реализации на различных языках, плагины для GIMP, Xn View MP и Paint.NET, а также dll для отображения эскизов в Проводнике Windows. Можно скачать изображение и сразу посмотреть на него здесь. Подробности о qoi от автора формата читайте под катом.

Читать далее

Подпись в кармане: как мы разрабатывали приложение для подписания документов через Госуслуги

Reading time9 min
Views18K

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

На связи команда проекта «Госключ» и директор проектов РТЛабс Константин Белов. Задачами, связанными с пилотированием новых процессов на региональных и даже федеральном уровнях, нас удивить сложно. Они — частый гость в наших офисах, но редко речь идет про мини-революцию и борьбу с «устоями».

Не секрет, что коронавирус заметно поменял все сферы жизни и бизнеса. И было бы странно, если бы пандемия не повлияла и на процесс подписания документов при помощи государственных сервисов.

Читать далее

Лучшие оптические иллюзии 2021 года

Reading time3 min
Views22K

В сериале «Доктор Хаус» (Сезон 6, серия 3) есть эпизод, где он лечит соседа Уилсона, вредного ветерана, от фантомных болей в ампутированной руке при помощи картонной коробки и зеркала. Есть даже специальный вид терапии: Mirror therapy, изобретенная Вилейануром Рамачандраном (тут реальное видео из реальной терапии).

Японские экспериментаторы Yutaro Sato, Kento Imai и Kenri Kodaka из Nagoya City University пошли дальше. Эксперимент очень прост и каждый может повторить его дома. Теперь у вас есть возможность обмануть свой мозг и испытать на своей шкуре, каково быть человеком-резиной.

Испытуемый кладет руку так, что она закрывается зеркалом и глаза видят только «лизуна» (резиновую слизь). То есть как бы мы подменяем реальную руку другим объектом, а потом подключаем сенсорные ощущения. Экспериментатор пощипывает реальную руку и одновременно пощипывает слизь в том месте, где глаза видят эту слизь вместо настоящей руки. Потом он немного оттягивает реальную кожу на реальной руке, а резиновую слизь тянет и тянет далего за пределы тянучести реальной руки и мозг верещит от необычности происходящего, но потом привыкает.

Оптическая иллюзия «Slime Hand» заняла 7-е место на всемирном конкурсе оптических иллюзий Best Illusion of The Year Contest. Под катом — остальные призёры.

Канал в телеграм Cognitive Illusions, от которого зависнет не только ваш комп/смартфон, но и разум.
Читать дальше →

Как использовать свойство Exception.Data, чтобы логировать дополнительные сведения об исключениях

Reading time3 min
Views5.5K

Привет! Я Антон Антонов, Full Stack Developer. Хорошее, подробное исключение — мощный инструмент, который помогает найти и исправить проблему. Поэтому в исключения стоит вносить больше деталей. Расскажу, как использовать свойство Exception.Data, чтобы логировать дополнительные сведения об исключениях.

Читать далее

Установка расширений в Хром без интернета

Reading time3 min
Views17K

Ситуация: Есть некий заказчик, у которого в закрытой сети работают сотрудники. Внутри, помимо прочего, есть веб-сайты с приложениями, для доступа к которым используется обычный Google Chrome. Внезапно уже им поставили задачу - перейти на ГОСТ. Везде. Пришлось им ставить Крипто-Про, разворачивать ГОСТовскую криптографию, и ставить известный в узких кругах софт CAdEs-plugin (или как там правильно в тамошнем капсе) для работы с ЭП. Софт состоит из двух частей - локальной программы и браузерного плагина, и с установкой последнего возникли сложности. Я думаю, что подобная ситуация может возникнуть не только с конкретно этим расширением, поэтому решил написать статью со сводкой необходимой информации в одном месте.

Читать далее

GraphQL: как сделать бэкенд приложения экономнее и быстрее

Reading time10 min
Views18K

Самый распространённый стандарт для обмена информацией внутри приложений — это REST API. Его все любят, но знают, что он не идеален. В этой статье обсудим его альтернативу — GraphQL. Мы расскажем, в чём преимущество GraphQL, как выглядят запросы и с чего начать.

Читать далее

Information

Rating
Does not participate
Location
Россия
Registered
Activity