Search
Write a publication
Pull to refresh
3
0

Разработчик(в основном на С#)

Send message

Android 12: история поддержки

Reading time11 min
Views10K

Всем привет! Меня зовут Максим Новиков, я Android-разработчик в команде мобильного оператора Yota.


Совсем недавно вышла новая версия всеми нами любимой OS. Вот и пришло время нашему приложению поддержать её. Было очень много обзоров на новые возможности Android 12, а также изменений для разработчиков. Сегодня я расскажу про наш тернистый путь. Наливайте чай/кофе и готовьтесь к увлекательному погружению в мир Android.


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

Модные видео гличи на C++

Reading time5 min
Views6K

В этой статье рассказывается о способах создания видео фильтров на C++ для разных программ, а так же тут рекламируется моя опенсорс программа SEZE II с интересными эффектами на подобии пиксельной сортировки, эмулятора аналогового ТВ, случайного 3-битного дизеринга и прочим

Читать далее

Алгоритм генерации тайловых карт Model Synthesis

Reading time7 min
Views5K
image

Я много писал об алгоритме коллапса волновой функции (Wave Function Collapse). Этот алгоритм, разработанный Максимом Гуминым в 2016 году, генерирует тайловые карты и пиксельные текстуры на основании удовлетворения ограничениям с дополнительной рандомизацией [перевод на Хабре]. Но знали ли вы, что большинство основных идей для него взято из статьи, написанной больше десятка лет назад? Сегодня мы рассмотрим диссертацию 2007 года на степень PhD Пола Меррела Model Synthesis и некоторые из разработанных им расширений алгоритма, в частности, Modifying in Blocks.

Model Synthesis


Идея Model Synthesis очень похожа на WFC, по которому я написал целый туториал. Но в этой статье мы опишем идею с нуля.

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

Изначально допустим любой тайл. Основной цикл выбирает ячейку и выбирает для неё заданный тайл, помечая все остальные как недопустимые. Затем он распространяет последствия этого выбора при помощи алгоритма AC4, то есть помечает тайл как недопустимый для текущей ячейки, если все его валидные смежные ячейки уже недопустимы. После распространения цикл сбрасывается и мы выбираем другую ячейку, для которой нужно выбрать тайл.
Читать дальше →

Как использовать Fiverr для озвучки игры

Reading time5 min
Views3.7K

Введение

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

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

Так было и в нашем случае. На первое место мы поставили гейм-дизайн, визуальное оформление и написание кода.

Мы довольно быстро сделали прототип и после первых тестов решили, что хотим продолжать разработку.

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

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

Читать далее

Рецепты PostgreSQL: загрузка Государственного Адресного Реестра

Reading time6 min
Views5K

Для приготовления загрузки Государственного Адресного Реестра в PostgreSQL нам понадобится сам PostgreSQL, bash, sh, curl, wget, xml2csv, jq, или можно воспользоваться готовым образом.

ОСТОРОЖНО! Может потребоваться много дискового пространства! Терабайта должно хватить, может, даже пол-терабайта хватит.

Первым делом

Tun2Socks: прокси-сервер в качестве шлюза, или VPN через прокси

Reading time9 min
Views75K

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

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

Читать далее

The Significance Manager в Unreal Engine 4

Reading time4 min
Views3.2K

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

Читать далее

Использование и настройка локального API CrowdSec

Reading time5 min
Views2.5K
Если вы впервые видите наши посты, то скажем пару слов о проекте. CrowdSec — это инструмент с открытым исходным кодом, который используется для обнаружения и блокировки вредоносных IP-адресов на основе локальных шаблонов поведения. Также возможно подключение бан-листов, причем как локальных, сформированных самостоятельно, так и общих, которые создаются всеми пользователями CrowdSec коллективно. Подробнее вы можете почитать об этом в наших предыдущих статьях.

В версии CrowdSec 1.x реализовал локальный API, к которому может обращаться как клиент приложения, так и пользователь через командную строку, в том числе и на удаленные машины.
Что он умеет?

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

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

Обеспечиваем безопасность стеков Docker Compose с помощью CrowdSec

Reading time13 min
Views5.6K

В этой статье рассказывается, как объединить CrowdSec и Docker Compose для защиты приложений, заключенных в контейнеры. Это позволит нам:

автоматически закрывать скомпрометированным IP-адресам доступ к нашим контейнерным сервисам;

вручную добавлять/удалять и проверять решения о запрете;

отслеживать поведение CrowdSec (с помощью cli и дашбордов).

Читать далее

Оптимизация GameThread в Unreal Engine 4 ч.1

Reading time5 min
Views7.8K

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

Читать далее

In-app purchases: продвинутые механики работы с покупками на Android и iOS

Reading time6 min
Views4.3K

Привет, я Влад, core разработчик Adapty SDK для Android. Это заключительная статья из серии туториалов по внедрению внутренних покупок в приложениях Google Play и App Store.

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

Читать далее

Потребительский экстремизм в GameDev

Reading time7 min
Views15K

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

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

Интересно, чем все закончилось?/

Что в этом случае делает администрация? Сначала банит клиента на форуме, если не помогает – блокирует персонажа до устранения нарушений. Примерно так развивался сюжет и в моем случае с одним отличием: клиент выйдя из бана повторно спровоцировал конфликтную ситуацию, получил отказ на претензию, зафиксировал ответы в нотариальном порядке и пошел в суд по Закону «О защите прав потребителей.» (далее - ЗЗПП для краткости).

В иске игрок потребовал все, на что хватило фантазии:

Рекомендации по защите под катом

Читать не надо слушать: как работает распознавание речи ВКонтакте

Reading time12 min
Views15K

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

Автоматическое распознавание речи помогает преодолеть этот разрыв. Технология переводит устную речь в текст, а дальше с ним можно делать что вздумается: хоть выводить расшифровку, хоть передавать в поиск, хоть преобразовывать в команды для техники. Или, как в нашем случае, помогать пользователям общаться. 

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

Читать далее

Создал город из игры Герои 3 в 3D | Оплот

Reading time10 min
Views29K

Всем привет! Это Денис Вебер и в этот раз я расскажу как создавал в 3D город из, уже ставшей классикой, игры Герои 3. Если вам интересен формат видео, ссылку на ролик, я, как всегда, оставлю под текстом.

Что вам первым делом приходит в голову, когда вы слышите слово фэнтези? Властелин колец, Игра престолов или может даже Гарри Поттер?

Лично у меня, драконы, гномы, эльфы и другие мифические существа всегда были связаны со вселенной игр Герои.

Читать далее

Недельный геймдев: #35 — 12 сентября, 2021

Reading time4 min
Views2.5K

Из новостей на этой неделе: анимационная демка Slay для Unreal Engine, релиз Blender 3.0 намечен на 1 декабря, прошёл DevGAMM 2021, закончился суд между Apple и Epic Games.

Из интересностей: анализ автоматических и ручных инструментов для ретопологии, полезный материал про оформление страницы своей игры в Steam, воссоздание механики скалолазания из From Breath of the Wild в Unreal.

Читать далее

Простая нейронка без библиотек и многомерных массивов

Reading time10 min
Views34K

Руководство? Гайд? В общем описание моего опыта создания простой, а главное понятной любому новичку нейросети :)

Дисклеймер: хочу сказать, что смысл этой статьи не в правильном способе создания нейросетей, таких статей сотни, а в способе понять, что такое нейросети и наконец перейти от теории к практике.

Читать далее

Blazor WebAssembly: динамическое создание компонентов по JSON описанию

Reading time4 min
Views5.1K

В заметке описан способ динамического добавления на страницу компонентов по JSON-описанию с помощью DynamicComponent из ASP.NET Core 6.0 (в настоящее время в статусе Preview).

Динамическое создание компонентов пригодится например при реализации конструктора форм:

• Форма описывается JSON-ом;

• Элементы (или контролы) формы не ограничены предустановленным набором. Контролы можно добавлять, в том числе подгружать из других dll-библиотек.

Читать далее

Основные инструменты Kubernetes в 2021 году

Reading time21 min
Views27K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее

Готовим Helm с GitLab, KinD и Chart-Testing

Reading time16 min
Views11K

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

Очень кстати, в недавно вышедшем релизе Gitlab 14.1, появился долгожданный функционал хранения Helm-чартов во встроенном Package Registry. Отлично, заодно и разберемся, как его использовать.

Читать далее

Information

Rating
4,651-st
Registered
Activity