Для лучшего усвоения материала, я делаю подробные конспекты статей, докладов и книг. И решил попробовать делиться этими конспектами, чтобы каждый мог получить полезные выводы из лекций, даже если нет времени слушать их целиком. Эти материалы также служат “почвой” для моего цифрового сада.
Буду рад получить вашу обратную связь: стоит ли продолжать делиться такими конспектами?
-- -- -- -- --
🤔 Virtual Threads или WebFlux? Что лучше выбрать?
Доклад о том, могут ли Virtual Threads заменить WebFlux в современных Java-приложениях. Оказалось, что оба подхода имеют свои плюсы и минусы, и выбор зависит от конкретных задач.
🔑 Основные выводы:
* Virtual Threads в Java 21 существенно повышают производительность и их внедрение довольно простое.
* WebFlux остается мощным инструментом для задач, требующих максимальной оптимизации, но за это придется заплатить сложностью разработки.
📊 По результатам тестирования:
* Прирост производительности при использовании Virtual Threads достигает 200% по сравнению с обычными потоками.
* WebFlux даёт ещё дополнительные 30%, но требует глубокого изучения и изменения подхода к разработке.
https://garden.struchkov.dev/ru/source/lecture/%D0%94%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4.-%D0%9C%D0%BE%D0%B3%D1%83%D1%82-%D0%BB%D0%B8-Virtual-threads-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-Webflux
Буду рад получить вашу обратную связь: стоит ли продолжать делиться такими конспектами?
-- -- -- -- --
Доклад о том, могут ли Virtual Threads заменить WebFlux в современных Java-приложениях. Оказалось, что оба подхода имеют свои плюсы и минусы, и выбор зависит от конкретных задач.
🔑 Основные выводы:
* Virtual Threads в Java 21 существенно повышают производительность и их внедрение довольно простое.
* WebFlux остается мощным инструментом для задач, требующих максимальной оптимизации, но за это придется заплатить сложностью разработки.
📊 По результатам тестирования:
* Прирост производительности при использовании Virtual Threads достигает 200% по сравнению с обычными потоками.
* WebFlux даёт ещё дополнительные 30%, но требует глубокого изучения и изменения подхода к разработке.
https://garden.struchkov.dev/ru/source/lecture/%D0%94%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4.-%D0%9C%D0%BE%D0%B3%D1%83%D1%82-%D0%BB%D0%B8-Virtual-threads-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-Webflux
Please open Telegram to view this post
VIEW IN TELEGRAM
Struchkov's Garden 🪴
Доклад. Могут ли Virtual threads заменить Webflux
Организатор:: Т-Банк Конференция:: Конференция. JVM Day 2024 Автор:: Сергей Петрелевич Ссылка:: Могут ли Virtual threads заменить Webflux? — Сергей Петрелевич, Squad - YouTube О чем доклад: Автор пытается понять есть ли место реактивной парадигме в современной…
👍18🔥16
Struchkov // Java TechLead
📢 Эволюция Java-кода: от анонимных классов к лямбда-выражениям. Когда я работал наставником в Яндекс.Практикум, одной из самых сложных тем для студентов был функциональный подход в Java. Лямбда-выражения и функциональные интерфейсы буквально “ломали мозг”…
Недавно я выпустил статью о лямбда-выражениях, и один из разделов вызвал много вопросов. Поэтому я решил переписать этот фрагмент, чтобы сделать его более понятным. Теперь в нём подробно объясняется, как работает LambdaMetafactory при динамическом создании лямбд.
Я также добавил пример, в котором сэмулировал поведение лямбды вручную с использованием LambdaMetafactory, без явного создания лямбды. Это поможет лучше понять, что происходит под капотом при работе с лямбда-выражениями в Java.
Перейти к обновленому разделу "Хранение в памяти и работа в JVM"
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
💡 Хочу порекомендовать канал Юли (@javagirlspace), который я читаю с самого начала!
Мы с Юлей начали вести свои каналы примерно одновременно, и её публикации всегда вдохновляли меня. Сейчас она работает в Яндексе, а начинала как 1С-программист, постепенно став востребованным Java специалистом — её канал как раз о таких профессиональных достижениях и развитии. Там вы найдёте размышления о work-life балансе, профессиональном развитии и честные истории о сложностях, с которыми она сталкивается как на работе, так и в личной жизни.
Юля пишет легко и искренне, делится своими успехами и вызовами, будь то сдача сложных проектов, организация рабочего дня на удалёнке или участие в IT-мероприятиях. Особенно ценю, что она открыто рассказывает, как находит баланс и ритм в жизни, не скрывая трудностей. Канал полон её личного опыта и полезных мыслей, которые будут интересны не только разработчикам, но и всем, кто ищет гармонию в жизни.
Если вам нравятся живые, искренние заметки о жизни в IT, где можно не только почерпнуть новые знания, но и почувствовать поддержку, то этот канал — для вас. Кроме того, Юля всегда открыта для общения и рада отвечать на вопросы подписчиков.
👩💻 Заходите, читайте и вдохновляйтесь!
Мы с Юлей начали вести свои каналы примерно одновременно, и её публикации всегда вдохновляли меня. Сейчас она работает в Яндексе, а начинала как 1С-программист, постепенно став востребованным Java специалистом — её канал как раз о таких профессиональных достижениях и развитии. Там вы найдёте размышления о work-life балансе, профессиональном развитии и честные истории о сложностях, с которыми она сталкивается как на работе, так и в личной жизни.
Юля пишет легко и искренне, делится своими успехами и вызовами, будь то сдача сложных проектов, организация рабочего дня на удалёнке или участие в IT-мероприятиях. Особенно ценю, что она открыто рассказывает, как находит баланс и ритм в жизни, не скрывая трудностей. Канал полон её личного опыта и полезных мыслей, которые будут интересны не только разработчикам, но и всем, кто ищет гармонию в жизни.
Если вам нравятся живые, искренние заметки о жизни в IT, где можно не только почерпнуть новые знания, но и почувствовать поддержку, то этот канал — для вас. Кроме того, Юля всегда открыта для общения и рада отвечать на вопросы подписчиков.
👩💻 Заходите, читайте и вдохновляйтесь!
👍13🔥1
🚀 Введение в многопоточность: Преимущества, проблемы и ключевые концепции
Это первая статья из серии о многопоточности. Мы начнем с базовых понятий и будем постепенно углубляться до более сложных тем, таких как реактивное программирование. Всего в серии запланировано около 7-8 статей.
В этой статье мы обсудим основы многопоточности и затронем такие ключевые концепции, как потоки, конкурентность, параллелизм и асинхронность.
📖 Подробнее
Это первая статья из серии о многопоточности. Мы начнем с базовых понятий и будем постепенно углубляться до более сложных тем, таких как реактивное программирование. Всего в серии запланировано около 7-8 статей.
В этой статье мы обсудим основы многопоточности и затронем такие ключевые концепции, как потоки, конкурентность, параллелизм и асинхронность.
📖 Подробнее
🔥30❤6🏆4👍1
✨ Новая рубрика — “Вопрос недели”!
С сегодняшнего дня в канале стартует новая рубрика — “Вопрос недели”! 🎉 Каждое утро среды я буду задавать важный или интересный вопрос, связанный с разработкой, чтобы вы могли начать день с размышлений и обсуждений.
Приглашаю вас дискутировать в комментариях к опросу, обдумывать возможные решения и делиться своим опытом. А уже вечером выйдет заметка с разбором этой темы!
И, конечно, отличного вам рабочего дня! 🚀
С сегодняшнего дня в канале стартует новая рубрика — “Вопрос недели”! 🎉 Каждое утро среды я буду задавать важный или интересный вопрос, связанный с разработкой, чтобы вы могли начать день с размышлений и обсуждений.
Приглашаю вас дискутировать в комментариях к опросу, обдумывать возможные решения и делиться своим опытом. А уже вечером выйдет заметка с разбором этой темы!
И, конечно, отличного вам рабочего дня! 🚀
👍8
🗳 Вопрос недели: Создаёте ли вы индекс для внешнего ключа при проектировании базы данных?
Anonymous Poll
37%
Да
34%
Нет
28%
В некоторых ситуациях
🔑 Индекс на внешний ключ — это не опция, а необходимость
Часто забываемый, но очень важный момент в проектировании схемы базы данных — добавление индекса на столбец внешнего ключа. Почему это так важно?
В заметке вы найдете наглядный и неочевидный пример, в котором без индекса запрос выполнялся 690 мс, а с индексом — всего 0.1 мс 😱
📖 Подробнее
Часто забываемый, но очень важный момент в проектировании схемы базы данных — добавление индекса на столбец внешнего ключа. Почему это так важно?
В заметке вы найдете наглядный и неочевидный пример, в котором без индекса запрос выполнялся 690 мс, а с индексом — всего 0.1 мс 😱
📖 Подробнее
Struchkov's Garden 🪴
Индекс для внешнего ключа таблицы БД
При создании внешнего ключа в базе данных важно не забывать про добавление индекса на соответствующий столбец. Разберёмся, почему это важно. Сперва обратимся к документации PostgreSQL: A foreign key must reference columns that either are a primary key or…
3👍17🔥9✍3😱1😨1
🔑 Как я решаю проблему уникальных идентификаторов в своих приложениях?
Когда дело касается уникальных идентификаторов, я почти всегда выбираю UUID. Однако версию UUID я подбираю в зависимости от задач конкретного сервиса. Каждая версия UUID имеет свои особенности, и выбор зависит от того, что важнее: сортируемость, случайность или производительность.
Подробнее о том, как я использую UUID и какие версии предпочитаю, можно узнать в моей заметке. Там вы найдете обзор каждой версии, с ее преимуществами и недостатками, а также сравнение производительности вставки и чтения в базе данных для разных версий UUID.
https://garden.struchkov.dev/ru/dev/Universal-Unique-IDentifier
А пока предлагаю вам поделиться своим опытом и проголосовать в опросе ниже!👇
Когда дело касается уникальных идентификаторов, я почти всегда выбираю UUID. Однако версию UUID я подбираю в зависимости от задач конкретного сервиса. Каждая версия UUID имеет свои особенности, и выбор зависит от того, что важнее: сортируемость, случайность или производительность.
Подробнее о том, как я использую UUID и какие версии предпочитаю, можно узнать в моей заметке. Там вы найдете обзор каждой версии, с ее преимуществами и недостатками, а также сравнение производительности вставки и чтения в базе данных для разных версий UUID.
https://garden.struchkov.dev/ru/dev/Universal-Unique-IDentifier
А пока предлагаю вам поделиться своим опытом и проголосовать в опросе ниже!👇
1👍11
Какой способ генерации уникальных идентификаторов вы используете?
Anonymous Poll
11%
UUID V1
40%
UUID V4 / V5
12%
UUID V7
43%
Автоинкремент
6%
Собственная реализация
4%
Другие способы — расскажите в комментариях!
👍4
🔍 Потоки в Java: Thread и Runnable
В новом посте продолжаем цикл про многопоточность, разбираясь, когда лучше использовать Thread, а когда Runnable, и рассматривая их ключевые отличия.
Сегодня потоки практически никогда не создают напрямую — вместо этого используют высокоуровневые инструменты, такие как ExecutorService или ForkJoinPool, которые мы рассмотрим в следующих статьях.
Однако важно понимать, что происходит «под капотом» этих абстракций, чтобы уверенно строить многопоточные приложения.
https://struchkov.dev/blog/ru/threads-in-java-thread-and-runnable/
В новом посте продолжаем цикл про многопоточность, разбираясь, когда лучше использовать Thread, а когда Runnable, и рассматривая их ключевые отличия.
Сегодня потоки практически никогда не создают напрямую — вместо этого используют высокоуровневые инструменты, такие как ExecutorService или ForkJoinPool, которые мы рассмотрим в следующих статьях.
Однако важно понимать, что происходит «под капотом» этих абстракций, чтобы уверенно строить многопоточные приложения.
https://struchkov.dev/blog/ru/threads-in-java-thread-and-runnable/
struchkov.dev
Потоки в Java: Thread и Runnable
В этой статье мы сосредоточимся на практическом применении потоков в Java с использованием классов Thread и Runnable.
3👍21🔥8
🛠️ Как управлять VIEW в Liquibase и избегать проблем с их обновлением?
В заметке я объясняю, как справиться с изменениями вьюх и почему важно выделять их в отдельные changeLog файлы. В статье есть практические советы, примеры кода и ключевые рекомендации по поддержке вьюх без ошибок и конфликтов.
📖 Подробнее
В заметке я объясняю, как справиться с изменениями вьюх и почему важно выделять их в отдельные changeLog файлы. В статье есть практические советы, примеры кода и ключевые рекомендации по поддержке вьюх без ошибок и конфликтов.
📖 Подробнее
3👍12🔥2🤔1
🧩 Пятничный Java-пазлер: `System.out.println(-Integer.MIN_VALUE)`
Anonymous Quiz
45%
-2147483648
15%
Исключение
5%
0
4%
-1
32%
2147483648
👍11🤔10
Пятничный наброс на финтех
Многие говорят, что у нас один из лучших финтехов в стране, но отдельные аспекты у меня вызывают вопросы — особенно в части безопасности. Недавно посмотрел видео, которое напомнило мне об одной из таких проблем, и решил поделиться мыслями.
Почему в наших банковских и особенно инвестиционных приложениях до сих пор не используются протоколы безопасности вроде U2F или хотя бы TOTP?
Для вывода средств с банковского счёта сейчас требуется только пароль и SMS-код, который легко перехватить, как и голосовой звонок. Если мошенникам удаётся похитить деньги, виноватым обычно считают самого пользователя, полагая, что он спалил свой пароль.
Особенно странно смотрятся платные сервисы банков, предлагающие защиту от мошенничества за отдельную плату.
Для сравнения: чтобы вывести средства с криптобиржи, требуется многоступенчатая аутентификация. Сначала — пароль и физический токен (U2F) для входа в систему, затем при выводе отправляется одноразовый код на почту (письмо при этом содержит заранее установленное пользователем слово, защищающее от фишинга), одноразовый SMS-код и ещё один код TOTP, сгенерированный приложением-аутентификатором. Только после ввода всех данных возможен вывод средств. Вот это я понимаю — надежная защита.
Разумеется, усиление безопасности ухудшает пользовательский опыт, но я не предлагаю включать все по умолчанию. Дайте выбор: кому нужна дополнительная защита — пусть включает её, кому не нужна — может остаться на SMS. В случае с криптобиржами даже эту многоступенчатую защиту можно сделать более удобной: можно добавить адрес кошелька в белый список и впоследствии выводить на него средства без повторного подтверждения.
Так почему же до сих пор отсутствуют такие протоколы в нашем хваленом финтехе? Это негласный запрет? или просто низкий приоритет у таких задач безопасности, которые не приносят бизнесу деньги и важнее выпускать новые фичи? Или просто эти протоколы недостаточно надежны?
Многие говорят, что у нас один из лучших финтехов в стране, но отдельные аспекты у меня вызывают вопросы — особенно в части безопасности. Недавно посмотрел видео, которое напомнило мне об одной из таких проблем, и решил поделиться мыслями.
Почему в наших банковских и особенно инвестиционных приложениях до сих пор не используются протоколы безопасности вроде U2F или хотя бы TOTP?
Для вывода средств с банковского счёта сейчас требуется только пароль и SMS-код, который легко перехватить, как и голосовой звонок. Если мошенникам удаётся похитить деньги, виноватым обычно считают самого пользователя, полагая, что он спалил свой пароль.
Особенно странно смотрятся платные сервисы банков, предлагающие защиту от мошенничества за отдельную плату.
Для сравнения: чтобы вывести средства с криптобиржи, требуется многоступенчатая аутентификация. Сначала — пароль и физический токен (U2F) для входа в систему, затем при выводе отправляется одноразовый код на почту (письмо при этом содержит заранее установленное пользователем слово, защищающее от фишинга), одноразовый SMS-код и ещё один код TOTP, сгенерированный приложением-аутентификатором. Только после ввода всех данных возможен вывод средств. Вот это я понимаю — надежная защита.
Разумеется, усиление безопасности ухудшает пользовательский опыт, но я не предлагаю включать все по умолчанию. Дайте выбор: кому нужна дополнительная защита — пусть включает её, кому не нужна — может остаться на SMS. В случае с криптобиржами даже эту многоступенчатую защиту можно сделать более удобной: можно добавить адрес кошелька в белый список и впоследствии выводить на него средства без повторного подтверждения.
Так почему же до сих пор отсутствуют такие протоколы в нашем хваленом финтехе? Это негласный запрет? или просто низкий приоритет у таких задач безопасности, которые не приносят бизнесу деньги и важнее выпускать новые фичи? Или просто эти протоколы недостаточно надежны?
YouTube
Взламываем сотовую сеть в три простых (не очень) шага [Veritasium]
По вопросам рекламы: vertdider@blossom-agency.ru
Поддержать проект можно по ссылкам:
Если вы в России: https://boosty.to/vertdider
Если вы не в России: https://www.patreon.com/VertDider
Перехватить смс с кодом двухфакторной аутентификации? Легко. Вычислить…
Поддержать проект можно по ссылкам:
Если вы в России: https://boosty.to/vertdider
Если вы не в России: https://www.patreon.com/VertDider
Перехватить смс с кодом двухфакторной аутентификации? Легко. Вычислить…
👍21🤔5💯3
Работал с виртуальной машиной, куда нельзя было нормально перекидывать файлы. В RocketChat при этом обычные файлы блокировались, а картинки проходили. Так и появилась png-zip — утилита для упаковки произвольных файлов в PNG тремя способами.
Append — дописывает данные после IEND, декодеры это игнорируют.
Chunk — кладёт данные в кастомный чанк pnZp, при необходимости разбивая большие файлы на пронумерованные части.
LSB — прячет данные в младших битах пикселей, незаметно для глаза.
Есть даже bootstrap-режим, когда картинка сама себя распаковывает.
Минусы: append и chunk не переживают пересжатие PNG, LSB не переживает конвертацию в JPEG. Шифрование отдельно через GPG.
Python 3.6+, только стандартная библиотека. Есть PowerShell-версия.
Подробнее / Исходники
Append — дописывает данные после IEND, декодеры это игнорируют.
Chunk — кладёт данные в кастомный чанк pnZp, при необходимости разбивая большие файлы на пронумерованные части.
LSB — прячет данные в младших битах пикселей, незаметно для глаза.
Есть даже bootstrap-режим, когда картинка сама себя распаковывает.
Минусы: append и chunk не переживают пересжатие PNG, LSB не переживает конвертацию в JPEG. Шифрование отдельно через GPG.
Python 3.6+, только стандартная библиотека. Есть PowerShell-версия.
Подробнее / Исходники
1❤11👍5😁5👏1
Недавно скинули в рабочем чате видео про Meshtastic — устройства, которые общаются между собой по радио без интернета и сотовой связи. Заинтересовался, собрал несколько штук.
В городе одно устройство бьёт на 2-4 км, а через ретрансляторы — до 10. Удивило другое: оказалось, в городе уже сотни людей строят эту сеть — со стационарными узлами и координацией.
Фото через такой мессенджер не отправишь, но «я на месте, всё ок» — долетает. На фоне новостей про пейджеры и рации — выглядит как более разумный вариант 😁
— — —
Подробнее / Заметки
В городе одно устройство бьёт на 2-4 км, а через ретрансляторы — до 10. Удивило другое: оказалось, в городе уже сотни людей строят эту сеть — со стационарными узлами и координацией.
Фото через такой мессенджер не отправишь, но «я на месте, всё ок» — долетает. На фоне новостей про пейджеры и рации — выглядит как более разумный вариант 😁
— — —
Подробнее / Заметки
❤14😁5🔥2👍1
Боты добрались до моего маленького self-hosted Gitea. Серьёзно, кому он вообще сдался?
CPU 136%, RAM в потолке, SQL-запросы по 6 секунд. 3.2 миллиона запросов к commit hash URL-ам одного репо. fail2ban: 431 match, 0 banned — тысячи IP, каждый заходит один раз.
Классические инструменты оказались бесполезны. Пришлось учить Nginx отвечать тишиной.
https://hub.struchkov.dev/ru/gitea-botnet-3m-requests-return-444
CPU 136%, RAM в потолке, SQL-запросы по 6 секунд. 3.2 миллиона запросов к commit hash URL-ам одного репо. fail2ban: 431 match, 0 banned — тысячи IP, каждый заходит один раз.
Классические инструменты оказались бесполезны. Пришлось учить Nginx отвечать тишиной.
https://hub.struchkov.dev/ru/gitea-botnet-3m-requests-return-444
Struchkov HUB
Ботнет и return 444: оптимизация Gitea
Боты вернулись: 3.2 млн запросов к commit hash URL-ам, CPU 136%, fail2ban 431 match и 0 banned. Пришлось учить Nginx говорить тишиной.
👍14🤔2❤1
Мой pet-проект 💩 для сообщества вчера превратился во взрослый сервис. Был маленький сайтик на shared-сервере, соседствовал с блогами. Теперь — свой выделенный VPS, новый домен 🚀
Передо мной: миграция с SQLite на PostgreSQL, Docker Compose стек, PostGIS, MinIO, nginx с certbot. Всё сразу. Буду писать обо всех граблях по дороге — где что поломаю, как исправлю.
Что за проект и для какого сообщества — расскажу чуть позже. Пока скажу только, что он про движение 😏
Первые заметки уже скоро. А пока — угадывайте в комментариях ⬇️
Передо мной: миграция с SQLite на PostgreSQL, Docker Compose стек, PostGIS, MinIO, nginx с certbot. Всё сразу. Буду писать обо всех граблях по дороге — где что поломаю, как исправлю.
Что за проект и для какого сообщества — расскажу чуть позже. Пока скажу только, что он про движение 😏
Первые заметки уже скоро. А пока — угадывайте в комментариях ⬇️
1👍27👏2
Обновил старую статью про OAuth 2.0 и OpenID Connect — она была написана в 2021-м, и с тех пор в стандартах произошли серьёзные изменения.
Главное: Implicit Grant и Resource Owner Password теперь запрещены (RFC 9700 с января 2025). Раньше я описывал их как рабочие варианты, и кто-то мог реализовать по ним небезопасный flow.
Добавил актуальное: PKCE для всех публичных клиентов, Device Authorization для CLI и IoT, ротацию refresh-токенов, расширенный разбор OpenID Connect, ссылки на все новые RFC.
https://struchkov.dev/blog/ru/how-oauth2-works/
Главное: Implicit Grant и Resource Owner Password теперь запрещены (RFC 9700 с января 2025). Раньше я описывал их как рабочие варианты, и кто-то мог реализовать по ним небезопасный flow.
Добавил актуальное: PKCE для всех публичных клиентов, Device Authorization для CLI и IoT, ротацию refresh-токенов, расширенный разбор OpenID Connect, ссылки на все новые RFC.
https://struchkov.dev/blog/ru/how-oauth2-works/
👍16🔥8
Обновил старую статью про NGINX. Добавил Brotli, HTTP/3, исправил синтаксис для свежих версий. Ещё вычистил кучу мёртвого кода типа поддержки IE6 и Flash (привет, 2010-е 🥲). Заодно обновил секцию SSL — теперь там OCSP Stapling и session cache. Вроде всё, что я использую сейчас на своих сайтах, собрано в одном месте.
https://struchkov.dev/blog/ru/nginx-optimization/
https://struchkov.dev/blog/ru/nginx-optimization/
struchkov.dev
Оптимизация NGINX
Оптимизация веб сервера nginx позволит вам ускорить ваш сайт, сократив время ответа сервера.
1👍17❤3⚡1🥰1
Последние месяцы все свободное время уходило в один проект, который наконец дошёл до публичной беты 🎉
Встречайте RideHub — велопортал для велосипедистов.
Проблема простая: все покатушки живут в чатиках. анонсы текстом, маршрут скриншотом, запись плюсиком в комментах, погоду гуглишь сам. я решил собрать это в нормальный продукт
Что внутри:
— покатушки с маршрутом на карте, погодой, списком участников
— Telegram и VK боты — анонсы, запись, напоминания прямо в мессенджере
— маршруты с GPX, профилем высот, покрытием дороги
— Strava-интеграция без VPN — рейтинг, лидерборд, автоматический матчинг по треку
— live-карта с позицией группы и SOS-кнопка
— челленджи, достижения, стрики
— фотоотчёты с поиском по описанию
— велокарта с мастерскими, водой, опасными участками
Сейчас на платформе 20+ регионов и десятки клубов. В Рязани месяц обкатываем с реальными пользователями — работает стабильно. Это публичная бета, так что баги возможны, о них можно сообщать сюда: @ridehub_forum
если катаете — заходите, буду рад фидбеку
Большая часть возможностей описана тут: ridehub.bike/features
Встречайте RideHub — велопортал для велосипедистов.
Проблема простая: все покатушки живут в чатиках. анонсы текстом, маршрут скриншотом, запись плюсиком в комментах, погоду гуглишь сам. я решил собрать это в нормальный продукт
Что внутри:
— покатушки с маршрутом на карте, погодой, списком участников
— Telegram и VK боты — анонсы, запись, напоминания прямо в мессенджере
— маршруты с GPX, профилем высот, покрытием дороги
— Strava-интеграция без VPN — рейтинг, лидерборд, автоматический матчинг по треку
— live-карта с позицией группы и SOS-кнопка
— челленджи, достижения, стрики
— фотоотчёты с поиском по описанию
— велокарта с мастерскими, водой, опасными участками
Сейчас на платформе 20+ регионов и десятки клубов. В Рязани месяц обкатываем с реальными пользователями — работает стабильно. Это публичная бета, так что баги возможны, о них можно сообщать сюда: @ridehub_forum
если катаете — заходите, буду рад фидбеку
Большая часть возможностей описана тут: ridehub.bike/features
👍23🔥10❤🔥5