Сообщество - ИТ-проекты пикабушников

ИТ-проекты пикабушников

527 постов 3 399 подписчиков

Популярные теги в сообществе:

1

U-Store – шаблон для запуска SaaS в Kubernetes

Я разработал U-Store – это открытый и бесплатный веб-сервис, который помогает разворачивать SaaS-приложения в Kubernetes. Если у вас есть сервис, который вы хотите сдавать в аренду клиентам (например, CRM, чат-бот, API), то U-Store позволит управлять его развертыванием через удобный веб-интерфейс.


🔹 Для кого U-Store?

  • Разработчиков, которые хотят быстро развернуть SaaS-продукт.

  • DevOps-инженеров, чтобы не делать всё руками в консоли.

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

    Больше всего это должно подходить для b2b приложений так как для них безопасность и изоляция важнее потребления ресурсов.


⚡ Как это работает?

  1. Вы подключаете свой Kubernetes-кластер.

  2. U-Store разворачивает ваше приложение по подписке (SaaS-модель).

  3. Клиенты могут через UI управлять своей подпиской: включать/выключать сервис, менять тариф, смотреть логи.


🎯 Ключевые возможности

  • Регистрация и авторизация (мульти-тенантность, каждый клиент работает в своём окружении).

  • Выбор тарифов и автоматический биллинг (Пока только Stripe поддерживается).

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

  • Поддержка разных облаков – работает с AWS, GCP, Azure и даже с локальными серверами (K3s).

  • Open-Source и кастомизация – можно изменить UI под себя или добавить фичи.

🛠 Как попробовать?

🔹 Репозиторий на GitHub

Буду рад фидбеку, вопросам и звёздочкам на GitHub! 😊

U-Store – шаблон для запуска SaaS в Kubernetes Сервис, Kubernetes, Saas, Стартап, Услуги, Github, Видео, YouTube

Скриншоты интерфейса

В видео описание работы и пример того как запустить всё вместе в кластере.

Показать полностью 1 1
5

Создал интересный сайт-маркетплейс со скидками в Беларуси

Всем привет друзья. Создал сайт-маркетплейс со скидками в Беларуси под названием Skidy.by

Создал интересный сайт-маркетплейс со скидками в Беларуси Сервис, Халява, Скидки, Купоны, Республика Беларусь, Маркетплейс

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

Подскажите как вам мой сайт, что доработать? Буду рад любым советам.

И как вам логотип и фирменный стиль?

Создал интересный сайт-маркетплейс со скидками в Беларуси Сервис, Халява, Скидки, Купоны, Республика Беларусь, Маркетплейс
Показать полностью 1
8

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Привет.

Я разрабатываю эмулятор сервера для Lineage 2 Chronicle 1: Harbingers of war на Node.js.

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

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

C(client) – двигается плавно из одной точки в другую. S(server) – делает прирост координат по таймеру.

Для примера я взял сборку написанную на java l2j-lisvus Сборок много. Но все они являются fork’ами проекта l2jserver https://l2jserver.com/И многое наследуется. В том числе и передвижение персонажа.

В l2j-lisvus, как и во всех сборках l2jserver перемещение персонажа на сервере идет при помощи таймера с приростом одинаковых значений.

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

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На коротких расстояниях проблема незаметна. Нога наступает точно в монету.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

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

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

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

Как работает передвижение персонажа на сервере.

За основу взяты базовые характеристики персонажа. Скорость бега 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

126 — это количество внутренних unit’ов за секунду.

На данной схеме идет прирост координат персонажа каждые 1000мс на 126 unit’ов. Исходя из схемы выше пример кода для действий персонажем после достижения пункта назначения:

// Прироста координат нет. Просто считаем когда персонаж дойдет до конечных координат.
const distance = 1500;
const playerSpeed = 126;
const ticks = distance / playerSpeed; // 11.90
const time = ticks * 1000; // 11900mc

setTimeout(() => {
// действие персонажа после бега
}, time);

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На коротких расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

На длинных расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Расхождения на коротких расстояниях.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Расхождения на длинных расстояниях.

Зеленой зоной показана точка куда должна ступить нога персонажа если бы не было расхождений.

Рост скорости при развитии персонажа.

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

Данные о характеристиках персонажа передаются от сервера к клиенту.

Пакет UserInfo.js 83 строчка.

writeD(player.runSpeed);
writeD(player.walkSpeed);

Базовые значения:

runSpeed: 126

walkSpeed: 88

Выставляю значения walkSpeed: 126. Если скорость ходьбы будет равна скорости бега, то расхождения должны пропасть.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост
Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Нога персонажа достигает правильной конечной точки.

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

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

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

runSpeed: 10

walkSpeed: 600

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Ходьба быстрее бега.

При скорости шага в 600 персонаж успевает пройти 250, прежде чем начинает бежать.

600 / 250 = 2.4

700 / 291 = 2.4

800 / 333 = 2.4

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

Значит при скорости ходьбы 88 персонаж пройдет 36 unit’ов.

88 / 2.4 = 36

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Первое деление — это начало движения (ходьба) а следующие деления — это бег.

Решение

Формула для расчета времени:

сколько_прошли_на_старте = скорость_ходьбы / 2.4

(((дистанция_между_нпц_и_игроком - сколько_прошли_на_старте) / скорость_бега) * 1000мс) + время_которое_прошли

Для примера дистанция 1500.

Из них мы 36 прошли.

1500 - 36 = 1464 расстояние для бега.

Скорость бега 126 в секунду.

1464 / 126 = 11.61 (количество отрезков, которое мы пройдем за секунду).

11.61 * 1000 = 11610мс бега.

к 11610 надо прибавить время ходьбы

Скорость ходьбы 88 в секунду.

1000 / 88 = 11.36мс за 1 unit

36 unit * 11.36мс = 408мс

11610 + 408 = 12018мс

12018мс является точным временем от начала старта и до конца.

Сравниваем со старым временем 11900мс. Разница в 118мс.

setTimeout(() => {
player.attack(npc);
}, 12018);

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Скорость бега 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Скорость бега 900.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Положение ноги при скорости 126.

Как я синхронизировал скорость персонажа на сервере в Lineage 2 на Node.js Программирование, Разработка, Lineage 2, Javascript, Nodejs, Гифка, Длиннопост

Положение ноги при скорости 900.

Как видно выше разница положения ног при разных скоростях отсутствует, а значит решение работает.

Ссылка на проект: https://github.com/lineage2js

Ссылка на блог: https://t.me/lineage2js

Показать полностью 19
12

Все оружие в Lineage 2 C1 за 1 минуту

Привет.

Занимаюсь разработкой сервера для Lineage 2 C1 на JavaScript(Node.js). Копался в клиенте игры и решил сделать перебор всего оружия для теста.

Ссылка на проект: https://github.com/lineage2js

Ссылка на блог: https://t.me/lineage2js

Показать полностью
1

Спорим, я сделал лучшего Telegram-бота для мониторинга сайтов?

Вкратце, что это и для кого

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

Спорим, я сделал лучшего Telegram-бота для мониторинга сайтов? Мониторинг, Работа сайта, Uptime, Telegram бот, SEO, Доступность, Пари, Домен, Длиннопост

А ещё желательно, чтобы домен вашего сайта в какой-то момент не перестал быть вашим

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

Причины поломки сайта могут быть банальны: забыли оплатить хостинг/домен, SSL-сертификат кончился, DDoS-атака, программист-фрилансер не тот файл удалил.

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

Сервисы для мониторинга сайтов

Спорим, я сделал лучшего Telegram-бота для мониторинга сайтов? Мониторинг, Работа сайта, Uptime, Telegram бот, SEO, Доступность, Пари, Домен, Длиннопост

Органический сервис мониторинга — тоже вариант

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

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

Раньше Яндекс.Метрика уведомляла о недоступности сайта, но в сентябре 2024 перестала.

Кстати, именно письмо о прекращении работы мониторинга Яндекс.Метрики сподвигло меня к созданию своего решения. Чтобы для пользователя — попроще, а внутри — как положено.

Мой Tg-бот для мониторинга

Спорим, я сделал лучшего Telegram-бота для мониторинга сайтов? Мониторинг, Работа сайта, Uptime, Telegram бот, SEO, Доступность, Пари, Домен, Длиннопост

Идея такая: отправляете в Telegram-бота ссылку на ваш сайт и нажимаете единственную кнопку. Бесплатно, без регистрации и SMS.

Бот каждые 5 минут проверяет порученный ему сайт: живой ли, какая реакция, какой заголовок страницы, куда ведёт переадресация, доколе действует домен и сертификат. Если произойдёт что-то важное — напишет.

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

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

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

Найти в Tg: @daily_site_monitor_bot

Показать полностью 2
7

Таблица умножения - мой игровой обучающий тренажёр

Таблица умножения  - мой игровой обучающий тренажёр Инди, Компьютерные игры, Математика, Таблица умножения, Браузерные игры, Инди игра, Обучающее, Образование, Начальная школа, Школа, Бесплатные игры, Яндекс Игры, Видеоигра, Gamedev, Cocos2d-x, Midjourney, Suno, Гифка

Всем привет! Сделал безопасную браузерную игру для школьников младших классов для обучения таблице умножения в Яндекс.Играх. Мой ребёнок мне помог в озвучке, тематике и стилистике. Ну и помогал в генерации графики (ИИ 🚉 использовал, ибо сам я так рисовать не умею, и бюджета на найм дизайнеров у меня нет).

Очень сильно заморочился (по мере своих сил), чтобы процесс был максимально эффективным в плане обучения. И вот какие нюансы я учёл:

  • ⏳ в игре нет никаких таймеров, можно повспоминать не дёргаясь;

  • никаких внутриигровых покупок покупок за реальные деньги;

  • есть бонусные мышки-рыбки 🐀 для разнообразных игровых скинов;

  • сложность примеров растёт постепенно (т.е. вначале всякие 3*5, а 5*9 уже в конце);

  • симметричные примеры 3*5 и 5*3 точно не попадутся один за другим;

  • периодически выдаётся статистика правильности ответов и показываются неправильные (исправленные) примеры, чтобы и визуально быстрее запоминалось;

  • за одну сессию выдаются все комбинации из таблицы умножения (по одному разу);

  • не выдаются малополезные примеры с числами 1 и 10, т.к. результат в них итак очевиден и дополнительно их учить не требуется, в отличие от каких нибудь 7*7 и 6*8.

Таблица умножения  - мой игровой обучающий тренажёр Инди, Компьютерные игры, Математика, Таблица умножения, Браузерные игры, Инди игра, Обучающее, Образование, Начальная школа, Школа, Бесплатные игры, Яндекс Игры, Видеоигра, Gamedev, Cocos2d-x, Midjourney, Suno, Гифка

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

Прошу попробовать и заценить👀. Адекватная и даже неадекватная критика и отзывы приветствуются.

Показать полностью 2
1

Technary.net - сеть IT технарей. Технари меняют мир!

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

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

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

Приложение доступно на Android, а в начале 2025 года планируется запуск веб-версии и версии для iOS к концу весны.

Этот ролик был записан еще до нового дизайна в приложении

А для разработчиков, прилагаю скрин специализаций в приложении. Вам тоже будет интересно! (Вверху выбранные мои интересы по электрике)

Technary.net - сеть IT технарей. Технари меняют мир! IT, Стартап, Тестирование, Программа, Программирование, Android, Приложение, Приложение на Android, Социальные сети, Информационная безопасность, Сайт, Windows, Чат-бот, Видео, YouTube, Длиннопост

Вверху выбранные мои интересы по электрике

P.s. Скачивайте приложение и Меняйте Мир вместе с Технарями

Ссылка на чат с тестировщиками и техподдержкой https://t.me/technary_chat

Google play: https://play.google.com/store/apps/details?id=com.technary.a...

RuStore: https://www.rustore.ru/catalog/app/com.technary.app

Показать полностью 3 1
Вопрос из ленты «Эксперты»

Какую IDE посоветуете выбрать новичку для разработки на REACT?

Хочу начать изучать REACT, не знаю какую самую удобную IDE установить для начала.

Отличная работа, все прочитано!