Pull to refresh
3
0
Дмитрий @MaNaXname

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

Send message

Атомарный подход в Unity

Level of difficultyMedium
Reading time29 min
Views7.4K

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

Меня зовут Игорь, и я Unity Developer. Последние несколько месяцев я реализовывал зомби шутер на атомарном подходе. Несмотря на то, что подход оказался очень удобным и гибким, я столкнулся я рядом архитектурных проблем в процессе разработки. Поэтому в этой статье я хотел бы раскрыть текущую концепцию атомарного подхода: объяснить что это такое, какие есть преимущества и недостатки, и самое главное, показать как правильно использовать атомарный подход у себя в проекте.

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments23

PowerShell и его возможности в уходящем году

Level of difficultyMedium
Reading time7 min
Views11K

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

Буквально два года назад, имея базовые знания навигации в консоли Linux, написание несложных batch-файлов и небольшой опыт VBScript открыл для себя PowerShell, и после этого я уже в прямом смысле этого слова, не мог остановиться реализовывать свои идеи, правда, такое дело очень затягивает. В один момент решился завести канал на GitHub и там же по сей день виду работу с заметками, где за это время накопилось более 6 тысяч строк из описания работы cmdlet (PowerShell-команд) и утилит для Системного Администратора (AD, Exchange, VMWare, MSSQL и т.д.) с примерами, ведь далеко не все получалось найти в интернете, порой, только изучая на практике свойства и методы объектов, можно получить желаемый результат. Так же набралась небольшая коллекция модулей и тестовый стенд WinForms с примерами работы различных методов, на котором я в дальнейшем базировался для написания приложений с графическим интерфейсом. Все работы писал по большей части для себя с целью автоматизировать и разгрузить текущий рабочий процесс, иногда помочь коллегам, именно по этому мне хочется поделиться своими наработками, возможно кому-то это еще сможет пригодиться.

Читать далее
Total votes 15: ↑14 and ↓1+16
Comments15

Анализ безопасности приложений, использующих GraphQL API

Level of difficultyMedium
Reading time14 min
Views4.3K

Привет! Меня зовут Даниил Савин. Летом я участвовал в программе стажировки для безопасников от Бастион и в процессе глубоко исследовал тему безопасности приложений, использующих GraphQL. Так появилась статья, из которой вы узнаете:

• какие встроенные функции есть у GraphQL;

• как тестировать GraphQL API;

• какие инструменты использовать;

• и как обходить различные защитные механизмы.

Читать далее
Total votes 22: ↑21 and ↓1+22
Comments2

Разворачиваем и заворачиваем в docker проект ASP.NET core на Ubuntu в связке с PostgreSQL

Level of difficultyEasy
Reading time5 min
Views14K

На просторах интернета заметил, что довольно мало статьей про ASP.NET под Linux. К сожалению, новички вроде меня копаются часами в поисках нужной информации, поэтому в этой статье мы вместе развернём минимальное приложение ASP.NET core под Linux в среде Ubuntu и в связке с PostgreSQL и с котиками на сервере nginx, а также упакуем всё в docker контейнеры. В ходе этой статьи мы разберём некоторые консольные команды для ежедневного пользования.

Приступить к чтению
Total votes 8: ↑5 and ↓3+4
Comments20

Как мы внедряли Sentry. Часть 2 — внедрение в разработку

Level of difficultyMedium
Reading time9 min
Views5.8K

В прошлый раз мы рассматривали внедрение Sentry со стороны эксплуатации: устанавливали на сервер self-hosted, делали его высокодоступным при помощи сети доставки td-agent, настраивали мониторинг.

Теперь рассмотрим процесс внедрения Sentry со стороны команды разработки.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments0

Пароль не нужен. Разбиение файла на зашифрованные фрагменты по схеме Шамира

Reading time4 min
Views14K


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

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

*Крестраж — волшебный артефакт, созданный с помощью тёмной магии, из вселенной Гарри Поттера.
Читать дальше →
Total votes 24: ↑23 and ↓1+29
Comments14

Talkvio — не капибара и не старый пикабу. Модуль серверной индексации для поисковиков для Nginx. Альтернатива Next.js

Level of difficultyMedium
Reading time9 min
Views2.9K

Читая такие статьи как про Капибару, мне хочется упомянуть один свой старый/новый проект, в изначальном виде я затеял как проект реставрации старого форума сети Минска (uruchie.org) из далеких 2006-2012 годов, который хранился у меня в замороженном виде последние 10 лет. Не так давно я решил его расконсервировать и заняться реставрацией в свободное время, того, фактически, что осталось еще со времен локальных сетей. 

Я сразу отбросил почти все что было, это старый движок vBulletin - на тот момент крайне перспективный и развивающийся движок форума на PHP, и убрав почти все, оставив только базу данных из 250 000 сообщений и 5000 пользователей начал реализовывать новые концепции которые хотелось видеть. Если кому-то интересно то, кстати, одна из причин гибели такого старого и долгого проекта был именно vBulletin и безопасность.

Ссылка на рабочую версия нового ресурса: https://talkvio.com (заходим, регистрируемся, пишем, предлагаем идеи)

За основу взял что душе угодно для таких целей:

Backend: NodeJS + MySQL + Redis + Manticore (у меня с ним был крайне приятный опыт на других своих старых проектах) + Bash + отдельные модули на Python + Nginx

UI: React

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

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments10

Способы отображения: существует ли связь между DDD и ООП

Level of difficultyMedium
Reading time8 min
Views7.2K

В ходе обсуждений докладов на Analyst Days возник вопрос о связи Domain-driven design (DDD) с объектно-ориентированным подходом (ООП): оказывается, для большинства она вовсе не так очевидна, как мне представлялось. Подробнее погружаясь в это обсуждение, я понял, что для современной разработки их общность действительно не очевидна, а практики DDD можно применять, не связывая с ООП. Я думаю, что подробное рассмотрение этого вопроса будет полезно для получения комплексного представления и понимания DDD, что сделает его применение эффективнее.

Читать далее →
Total votes 8: ↑8 and ↓0+8
Comments1

Как собраться с друзьями и сделать игру в Unreal Engine на одной сцене

Reading time4 min
Views9.8K

Раньше, когда я ещё учился, мы любили собираться с друзьями и пробовать создать игры на выходных или в течение месяца. Каждый из нас был занят чем-то одним: кто-то создавал сцены, кто-то делал модели, а я программировал логику. И с тех времён была главная сложность: как работать с одной сценой нескольким людям одновременно? Ответ — почти никак. Но есть одна хитрость, называемая саблевел.

Читать далее
Total votes 12: ↑9 and ↓3+7
Comments4

Git as Subversion

Reading time4 min
Views39K
Некоторое время назад при старте нового проекта было решено попробовать использовать Git вместо Subversion. Через некоторое время коллектив разделился на тех, кто любит Git (программисты), и тех, кто его ненавидит (дизайнеры и художники). Эксперимент по замене Subversion на Git провалился и на горизонте замаячила перспектива возвращения Subversion.

Почесав репу и содрогнувшись от связанных с Subversion воспоминаний мужики решили: «А что, мы же программисты!» и запилили свой Subversion с Git-ом и печеньками. Так родился проект git-as-svn.

Теперь мы можем использовать и Git, и Subversion с одним и тем же репозиторием. Причем доступ через Subversion напрямую использует данные Git-репозитория, в отличие, скажем, от SubGit, где для Subversion используется отдельный репозиторий.
Читать дальше →
Total votes 77: ↑51 and ↓26+25
Comments168

Своё облако на CasaOS

Level of difficultyEasy
Reading time4 min
Views33K

В последнее время я всё чаще задумывался о создании собственного домашнего облака. Я решил исследовать различные варианты операционных систем, специально предназначенных для домашних серверов. В моем поиске я рассмотрел несколько популярных решений, таких как TrueNAS и OpenMediaVault (OMV), каждое из которых предлагало свои уникальные функции и возможности. Однако, несмотря на их многочисленные преимущества, я искал что-то еще более простое и гибкое в настройке. И вот тогда я наткнулся на CasaOS – легковесную и интуитивно понятную операционную систему, которая идеально подошла для моих целей. В этой статье я поделюсь своим опытом работы с CasaOS, расскажу о ее особенностях, возможностях и преимуществах, которые сделали её идеальным решением для моего домашнего облака.

Читать далее
Total votes 15: ↑5 and ↓10-3
Comments33

Как я из телефона сделал сервер для своего бота в телеграме

Level of difficultyMedium
Reading time3 min
Views40K

Как я из телефона сделал сервер для своего бота в телеграме

Все началось с того что я написал своего бота и решил его выложить в открытый доступ, а точнее чтобы он работал круглосуточно, но платить деньги, за хостинг мне не хотелось. И тогда я вспомнил, что у меня как раз в ящиках залежались старые 2 телефона, можно сказать только один, потому что второй я превратил в кирпич (Неправильно перепрошил). Мой путь поиска программы для установки линукса начался с Termux, но к сожелению он работает только с Android 7+. А телефон на Android 5. Поэтому действенным решением я выбрал UserLAnd.

Читать далее
Total votes 27: ↑26 and ↓1+29
Comments59

Кастомная навигация в Unreal Engine 5 и USD импорт файлов

Reading time2 min
Views1.2K

Перед мной возникла задача создать демку на Unreal Engine 5 с возможностью динамической генерации навигации для камеры и встроенной поддержкой загрузки файлов в формате USD на уровень в режиме выполнения (отдельная игра без редактора).

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments0

Тест производительности Web-фреймворков для Rust

Level of difficultyMedium
Reading time9 min
Views10K

В этой статье мы сравним производительность 3 наиболее популярных бекэнд-фреймворков для Rust: AxumActix и Rocket.

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

Читать далее
Total votes 15: ↑13 and ↓2+14
Comments12

Архитектура unity проектов

Level of difficultyMedium
Reading time9 min
Views18K

За всю карьеру удалось поработать на множестве игровых проектов в качестве лида. За более чем 5 лет удалось насмотреться на разные подходы к созданию проектов.

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

Не волнуйтесь, никаких SOLID и других изотерических практик. Коротко, по делу, подкрепленное использованием на нескольких проектах.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments18

Оптимизация веб-приложений: на что стоит обратить внимание

Level of difficultyEasy
Reading time6 min
Views8K

Привет, Хабр! Меня зовут Андрей, я веб-разработчик в МТС Digital. Сегодня поделюсь своим опытом, как и зачем оптимизировать веб-приложения.

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

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

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

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments4

Одна игра, один разработчик, шесть платформ

Level of difficultyEasy
Reading time11 min
Views9.4K

Недавно компания Valve объявила о том, что Counter-Strike 2 не будет поддерживать macOS. Я инди-разработчик, в одиночку выпустивший игру с поддержкой macOS, поэтому поначалу меня удивило это решение Valve. Но вспомнив о своём собственном опыте поддержки шести платформ, я начал понимать точку зрения компании.

Думаю, будет полезно написать пост с перечислением полученных мной уроков. Надеюсь, он поможет другим инди-разработчикам в выборе поддерживаемых платформ. Небольшое предисловие: моя собственная игра Industry Idle в основном основана на веб-технологиях (WebGL + TypeScript). Это означает, что поддержка разных платформ — относительно простая задача, мне не приходится иметь дело с платформенными графическими API (DirectX, OpenGL, Vulkan, Metal) и в основном игра существует в браузерной «песочнице». Это практически идеальная ситуация для кросс-платформенной поддержки. Тем не менее, меня постоянно удивляют и одолевают проблемы, связанные с отдельными платформами.

Читать далее
Total votes 22: ↑21 and ↓1+28
Comments5

Ржавое наследование 2. Славянский проброс Get/Set

Level of difficultyMedium
Reading time7 min
Views4.4K

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

Продать душу дьяволу
Total votes 14: ↑14 and ↓0+14
Comments4

Прекрасные конечные автоматы на Rust

Reading time16 min
Views13K

Перевод статьи Andrew Hobden "Pretty State Machine Patterns in Rust". Ссылка на оригинал в конце.


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


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


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

Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments2

Самый маленький Docker образ Rust приложения

Level of difficultyMedium
Reading time5 min
Views11K

Привет %username%, эта статья про то, как поместить Rust приложение в Docker и получить образ размером с бинарный файл (6 Мб). А также про причины, которые привели к переходу с NodeJS на Rust. Отдельная пара слов о проблемах вначале, переходе на Go, и том, как команда Rust устранила эти проблемы за пол года.

TL;DR Dockerfile в конце статьи и ссылка на example репозиторий

Читать далее
Total votes 36: ↑35 and ↓1+43
Comments16

Information

Rating
6,067-th
Location
Biała, Tarnow, Польша
Date of birth
Registered
Activity