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

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

592 поста 3 429 подписчиков

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

4

Анкета менеджера it-проектов

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

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

Основной упор — выявить актуальные или потенциальные проблемы в бэклоге, инфраструктуре проекта, кодовой базе и бизнес-процессах.

Реализация

В качестве ключевых членов команды я выделил:

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

Оставляйте комментарии, предлагайте новые вопросы, пишите ваши идеи и предложения по доработке (можно через MR).

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

Мой сервис удаленного доступа. Обновление 1

Всем привет! Я знаю, что немного вылетел из информационного поля, в этом посте хочу рассказать почему и что изменилось в сервисе за последнее время.

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

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

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

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

Начнем с самого частого, на что обращаешь внимание - размер программы, для сравнения:

Windows, было 58,6 мб, стало 3,3 мб в консольном варианте и 6,1 мб с GUI. Разница в 17,7 раз!

Linux, было 233,6 мб, стало 7,5 мб. Еще большая разница в 31,1 раз!

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

Конечно еще можно считерить и упаковать файл в zip архив, тогда размер получается 1,79 мб, это примерно 32,7 раз. Моя небольшая победа.

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

Вот скриншоты интерфейсов, в консольном варианте он стал попроще:

Мой сервис удаленного доступа. Обновление 1

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

Сервис стал доступнее для большего количества версий операционных систем, например я понизил архитектуру до x86, и минимальная поддерживаемая версия на которой тестировалась программа — windows 7, а для linux — ubuntu 18. Правда обе доступны только в консольном варианте, в графическом режиме отказывалось запускаться, думаю потом поменяю на другой GUI фреймфорк. Для более новых версий windows всё осталось так же.

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

Так же были внесены небольшие изменения:

  • Исправлен баг с открытием окна командной строки на пару секунд при выполнении команд и при запуске.

  • Не всегда отображались IP адреса, особенно на linux.

  • Баг с отключением сервиса программы через 3 дня, из за чего станции были в офлайне. Никто об этом не написал, но я исправил.

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

  • Генерация пароля каждый час, если он не был задан вручную.

  • Поправлена немного админка.

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

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

По правде говоря, чистая работа с кодом сама по себе заняла около 3 недель, а последние две ушло на сборку и отладку под разные дистрибутивы, и на каждом встречались свои ошибки, и когда я закрывал ошибку скажем на ubuntu 22, на 18 вылазила новая. Меня это печалило до такой степени, что по ночам снились кошмары, например где я нахожу баг, но не могу его описать, не могу найти логов, хотя четко понимаю и вижу как приложение крашится, или еще сон с бесконечной сборкой, когда запускаешь команду и ждешь, ждешь, ждешь и больше ничего делать не можешь, просыпаешься в холодном поту и приходит радость, что это всё не в заправду. Для справки - мне обычно снились приятные или нейтральные сны, которые я часто забывал проснувшись, но эти я помню до сих пор.

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

Итак к делу, что бы обновиться на новую версию — нужно удалить старую, скачать новую и установить. Что бы ID станции и привязка к вашему аккаунту сохранились — переместите файл config.json из "C:\ProgramData\Cusco\CuscoRemoteControl" в "C:\ProgramData\Cusco\RemoteControl"

Новые файлы уже залиты на сайт, находятся в разделе загрузки.

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

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

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

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

Как я при помощи Google сделал OPC2WEB клиент

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

Кстати можно сделать тоже самое но в Excel:

Я работаю инженером АСУТП и немного увлекаюсь программированием: при помощи Гугла и Stack Overflow делал несколько калькуляторов на HTML и javascript, делал бота для телеграма на php, даже немного программировал на C# по работе. В этот раз задача была куда интереснее и сложнее, хотя и звучала просто: «хочу видеть в своем браузере текущую скорость агрегата». Для начала я решил попробовать поискать готовый софт: естественно такое уже давно придумано, есть готовые и даже бесплатные SCADA системы, которые могут работать и в качестве веб сервера, но они все были сильно наворочены и сложны для моего понимания, к тому же нужно было просто вывести скорость. Поэтому я подумал что можно попробовать сделать это самому и вот что из этого вышло:

Backend

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

Поиски этого привели меня на хабр, где я узнал про бесплатную библиотеку OPCDOTNET. В архиве библиотеки лежал исходник консольного клиента, который я скомпилировал на своем компьютере, запустил простой OPC симулятор (gray-box)… и о чудо! я увидел в консоли изменяющиеся числа. Это значит, что теперь я смогу их отправлять в качестве ответа по вебзапросу. Следующим заходом в гугл стал запрос простого веб сервера где наткнулся на пример использования HttpListener. Запустил пример в отдельном проекте, понял как это работает, и стал добавлять все это к своему OPC клиенту. Через много попыток компиляций, поиска ошибок на Stack Overflow у меня все же получилось увидеть в браузере заветную «скорость». Это была победа! Но я сразу же понял, что одна лишь скорость это не серьезно, через время технологи захотят увидеть и другие параметры линии, поэтому нужно придумать как добавлять необходимые сигналы, без изменения программы. На помощь пришли файлы конфигурации, где можно заранее задать какие сигналы хотим видеть, задать порт прослушивания сервера, время обновления и прочее. Опыт в создании файлов конфигурации уже имелся, поэтому сделал так как ранее делал и проверенно работало. Так же в процессе пришлось обратиться к другу программисту, который подсказал что сделать чтобы передавался полный массив запрашиваемых данных, а не только те значения что менялись (в готовом примере OPC клиента в консоли отображались только изменяемые значения).

После таких изменений программа стала генерировать таблицу в HTML из запрашиваемых в конфиге сигналов: обратившись через браузер по адресу сервера, где был запущен этот клиент, теперь можно было видеть таблицу, в которой были названия сигналов и значения в соседнем столбце. Это было уже неплохо, но значения при обновлении промаргивали, а сами сигналы тупо располагались друг за другом хоть и были структурированы в виде таблицы. Кстати, чтобы значения обновлялись автоматически ежесекундно, а не только когда пользователь обновит страницу, я добавил в возвращаемую на запрос страницу тег meta с параметром Refresh. Но мне очень хотелось чтобы значения обновлялись автоматически и без перезагрузки страницы, поэтому нужно было кроме бэкенда теперь делать и фронт: пользователь запрашивает страницу на сервере, внутри которой происходит запрос к клиенту, и страница после этого генерирует все это в красивом и понятном виде, где можно структурировать данные как заблагорассудится, поменять цвета, шрифты и размеры — сделать можно вообще все что угодно при таком-то подходе. Полный код клиента под винду на C# есть на гитхабе https://github.com/boolkin/opc2web-client

Frontend

Пришел я к этому не сразу: сначала стал гуглить как сделать так чтобы данные на странице обновлялись без перезагрузки. Как выяснилось нужно использовать AJAX, то есть изменять данные через javascript, а принимать их через JSON. В клиенте простой конкатенацией строк сделал генерацию JSON, причем для универсальности решил просто отсчитывать по порядку задаваемые в конфиге теги. Потом нашел пример в котором через javascript запрашивается ежесекундно JSON строка и выводятся значения из нее. Поменяв код под свои нужды и запустив страницу я увидел что все работает — данные обновляются без перезагрузки страницы (!). Это была еще одна победа. Теперь оставалось дело за малым — грамотно распределить на странице полученные данные, то есть сделать что-то в виде визуализации. Сначала я решил сделать так же таблицу, но потом понял что блочная структура смотрится красивее и функциональнее. Блоки можно окрашивать в разные цвета и менять их размер. А еще нужно сделать так чтобы пользователь мог самостоятельно добавлять и изменять структуру, не буду же я на каждую новую хотелку переписывать HTML файл. В итоге получился такой вот вариант, как на картинке ниже.

Здесь можно добавлять большие блоки, которые будут объединять малые блоки с одним признаком. Такие большие блоки можно озаглавливать так как нужно, менять их цвета (если щелкнуть по блоку с зажатой клавишей shift) и менять их размер. Блоки со значениями добавляются при двойном клике по большому блоку. В них так же можно задавать свои названия и единицы измерения. Если нечаянно добавил не тот элемент или не туда, то можно удалить его — я подсмотрел эту функцию в одном букмарклете, полностью перенеся его код на страницу. Конечно вся созданная структура после перезагрузки страницы исчезнет и для ее сохранения нашел такую возможность как локальное хранилище. А для того чтобы перенести готовую структуру на другой компьютер сделал импорт и экспорт экрана из локального хранилища.

Единственная проблема оставалась с перетаскиванием блоков — хотелось бы сделать красиво drag and drop, но для меня это оказалось непосильно. Вышел из ситуации так: если открыть страницу в панели разработчика в хроме, то блоки можно перетаскивать. Это натолкнуло на мысль что задействовав правую кнопку мыши можно просто менять блоки местами. Сейчас такая система вполне универсальная: чтобы добавить новый сигнал нужно просто добавить нужный OPC тег в конфиг и перезапустить клиента. Добавленный тег автоматически добавляется в JSON и на экране вывода появляется внизу новое значение, которое можно несколькими кликами добавить в существующий или новый блок на странице. На данный момент на странице выводится больше 60 тегов и больше половины из них добавлял уже не я, то есть процесс добавления может и не самый простой, но не требует переписывания программы и страницы вывода. Протестировать и посмотреть код этой страницы можно тут на github opc2web html В этой версии добавлено специальное меню для манипуляций с блоками, и есть даже подобие HMI с использованием svg формата, вот как это выглядит на картинке.

Заключение

Поскольку данная статья должна быть вроде инструкции, как непрограммист вроде меня с помощью поисковиков может сделать что-то полезное, то наверное нужно добавить немного слов о том как именно я искал информацию. Тут впору говорить как на картинке в самом начале: думаешь что ты хочешь получить и спрашиваешь об этому у гугла, а если что-то где-то не получается, то смотришь на коды ошибок и спрашиваешь снова. Очень помогает поиск на английском языке — даже вбив просто ключевые слова можно получить ссылку на подобную решенную проблему на стаковерфлоу с вероятностью 80%. Для поиска готовых примеров, код из которого можно тупо взять и перенести в свою программу, можно добавлять такие ключевые слова как «example» или по-русски «пример». Несколько хороших идей нашлось на хабре, то есть можно попробовать в запрос вставить ключевое слово «habr», но я таким пользовался только тогда когда точно знал что на хабре видел решение которое ищу. Практически любая мелкая задача из всего того, что было сделано, решалась через поисковик: «change div color shift click js», «make div resizeable», «как редактировать веб страницу»… сотня вариаций разных запросов. Возможно в комментариях профи могут поделиться своими советами.

И да, раз уж речь зашла о советах, то мне бы еще хотелось получить от вас конструктивную критику и полезные советы. Возможно кто-то захочет размять мозги и сможет за пару часов накидать куда более функциональное решение. Или может кого-то этот пост натолкнет на интересные идеи, ведь таким способом можно принимать любой JSON запрос и сделать на его основе любую визуальную структуру. Было бы очень круто заиметь похожее универсальное решение, где можно любые данные распределять так как тебе это удобно, управляя простыми визуальными формами, drag and drop, resize и все такое прочее, чтобы красиво и функционально, а не вот это вот все. Хотя и так получилось неплохо, я считаю. Скорость агрегата, как и просил заказчик, теперь можно наблюдать из браузера и добавить что-то новое не составит большого труда.

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

Что за Умная парковка?

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

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

Как это работает? Водитель может зарезервировать место на парковке, используя приложение на своем смартфоне или через интернет-сайт. Датчики, установленные на парковке, определяют, занято ли место, и резервируют его для водителя. Если водитель не приехал вовремя, место освобождается и становится доступным для других пользователей.

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

Но это еще не все, наша умная парковка еще и детектирует правонарушения на дорогах, такие как неправильная парковка или ДТП. Это позволяет улучшить безопасность на дорогах и обезопасить окружающих.

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

https://forms.yandex.ru/u/6423f52a43f74f0b39ad7680/

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

Будущее контент-маркетинга: создание сайта с помощью нейросети

Будущее контент-маркетинга: создание сайта с помощью нейросети

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

Процесс создания сайта на котором статьи генерирует нейросеть начинается с выбора алгоритма генерации текста. Существует множество различных алгоритмов, таких как GPT-2, GPT-3, BERT и другие. Каждый из них имеет свои преимущества и недостатки, поэтому необходимо выбрать наиболее подходящий для конкретного проекта.

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

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

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

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

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

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

Встречайте:

https://answershub.how/

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

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

Victa вызывает повышенную подвижность у удаленщиков, любителей сериалов, прирожденных геймеров и вообще у всех, кто готов добавить яркость и игру в рутину дней. Рубрика «Продукт дня»

Стартап-привет, я Дима Беговатов, нахожу интересные российские проекты и рассказываю о них широкой публике. Даю только личное мнение, взгляд с позитивной стороны. Приятного прочтения!

Игра на бегу

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

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

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

Что ходить, что бегать «просто так» уже не слишком весело. Одним подкасты подавай, другим – «треки для пробежек» в Яндекс.Музыке, а некоторым вообще в игры хочется играть.

Хочется – пусть играют, я считаю, тут даже кандидат любопытный нарисовался – Victa.

Ребята сделали беговое приложение и шагомер с механиками прокачки персонажа и поиском артефактов на местности в стиле Pokemon Go.

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

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

Victa подсоединяется к Apple Health, откуда берет данные о вашей активности: шаги и калории. Дистанцию, время, скорость, набранную высоту и темп ребята вычисляют на своей стороне.

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

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

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

К сожалению, погрузиться полностью в историю персонажа я так и не смог: вертикальные комиксы нужно прокликивать пальцем, а это очень утомляет… Плюс от ходьбы уровень набрался быстрее, чем я ожидал, по-моему в приложении не хватает сложности прокачки.

Буквально «дошел» до 7 уровня за 3 дня 😃

Но при этом мне очень понравилась стилистика Victa и анимации. Над этим всем работали спецы, делающие мультики для 2х2.

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

Буквально в ближайшие дни команда добавляет квесты и достижения, а немного позже – таблицу рейтинга игроков, списки друзей и расширит интеграцию с Эпл Хелс. В дальнейших планах создателей разработка умного чат-бота с ИИ под капотом, который будет готов ответить на вопросы по фитнесу или ЛОРу вселенной.

Скачать Victa из AppStore

👉 Скачать

Пообщаться с основателем

🤙 alexander@victa.ai

Поддержите рубрику «Продукт дня» и российские ИТ-проекты вашим плюсиком.

Больше полезной информации из мира российских стартапов, а также обзоры интересных продуктов в виде выжимок, вы найдете в моем телеграм-канале VC hunt и в недавнем видео на YouTube.

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

На что способен мать его автокликер и смекалка?

На что способен мать его автокликер и смекалка?

Вкратце автокликер это прога с ванильным кодом которая может сделать на твоём ПК что угодно и как угодно, ну например: отследить появления чего-то нажать куда-то и отправить что то кликнуть там то.

  • В ролике во-первых код хреначит из блокнота программа.

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

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

Вдруг кому-то пригодится

Для ленивых
сделать кружок телеграм из видео, скачать видео из тиктока без водяного знака, вычислять счастливчика дня -
если нужно что-то из этого, то ищем в телеге @RPidorbot и пишем /rphelp

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

Но все-таки у меня получилось сделать что-то, что работает, и даже может кому-то пригодиться!)

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

По функционалу:
Писал на С#, потому что это единственный язык, с которым я маломальски знаком. Делается простым рандомом. Но для интереса добавлены ачивки, статистика, разнообразные оповещения и рулетка. Так что если кому-то надо разнообразить беседу с друзьями, буду рад отзывам)

Конвертация видео в кружочки телеграм:
Не знаю кому, не знаю зачем, но мне понадобилось, так что вдруг кто-то еще столкнется с потребностью.

Скачивание видео из тиктока:

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

Из основных проблем:
1. Бот лежит на облачном сервере в Нидерландах за 190р в месяц. Так что думаю быстро сдуется при малейшей нагрузке.
2. Понятия не имею как оптимизировать работу под нескольких пользователей, так что все задачи просто улетают в отдельные Task.Run
3. Без понятия как лучше хранить инфу, так что просто записываю json строкой в файлы

Буду рад вопросам, идеям, предложениям)

p.s. даже если пост останется в забвении, надеюсь однажды кто-то, как я когда-то, будет искать эти вопросы в гугле и наткнется на старый, заминусованный пост, который полностью оправдает его ожидания)

Спасибо, хорошего дня)

Бот: https://t.me/RPidorbot

Показать полностью 4
Отличная работа, все прочитано!