Гайз вижу и в комментах и в приватке вопросы "когда вторая часть"
Честно вам скажу: возможно я как-то неправильно подхожу к созданию контента, но первая часть у меня заняла больше месяца от первых шагов до нажатия на кнопку "Опубликовать". Я хуярил каждый день без выходных по 6-12 часов на энергосах и предтренировочных комплексах (да, эта хуйня штырит получше кофя). Это очень трудоёмкий процесс, и записываю каждую тему обычно раза с 3-го 4-го, ибо по ходу объяснения постоянно выясняется что что-то ты упустил или слишком сложно начал загонять. Плюс постобработка это жесть, на 12 часов итогового хронометрожа было часов 30+ исходников (это я даже не считаю то, что уже записано, но пойдет в следующую часть). Пуки чихи вздохи чавканья хуявканья, это всё нужно отсматривать и вырезать. Это очень сложно и морально и физически, поэтому на этойй неделе следующую часть ждать точно не стоит. В хорошем случае ещё через месяц я дропну вторую часть. Там рассмотрим конкуретную работу приложения, доразберём гошку, и, возможно, успеем посмотреть на http и постгрю.
Я не меньше вас хочу увидеть вторую часть, но не хочу из-за спешки сделать плохо, и так даже в первой части многим пришлось пожертвовать чтобы не выпускать её через пол года.
Планируется от трёх до пяти частей. В конечном итоге напишем классное бекенд-приложение. Но это требует времени. Ваша лучшая поддержка это лайки комментарии и подписки на каналы и в приватку🐱
Возможно сейчас пару дней посушу вёсла, а то пиздееец как устал( И буду выкакивать в этот канал какие-то постики. А может не буду. Всех обнял
Честно вам скажу: возможно я как-то неправильно подхожу к созданию контента, но первая часть у меня заняла больше месяца от первых шагов до нажатия на кнопку "Опубликовать". Я хуярил каждый день без выходных по 6-12 часов на энергосах и предтренировочных комплексах (да, эта хуйня штырит получше кофя). Это очень трудоёмкий процесс, и записываю каждую тему обычно раза с 3-го 4-го, ибо по ходу объяснения постоянно выясняется что что-то ты упустил или слишком сложно начал загонять. Плюс постобработка это жесть, на 12 часов итогового хронометрожа было часов 30+ исходников (это я даже не считаю то, что уже записано, но пойдет в следующую часть). Пуки чихи вздохи чавканья хуявканья, это всё нужно отсматривать и вырезать. Это очень сложно и морально и физически, поэтому на этойй неделе следующую часть ждать точно не стоит. В хорошем случае ещё через месяц я дропну вторую часть. Там рассмотрим конкуретную работу приложения, доразберём гошку, и, возможно, успеем посмотреть на http и постгрю.
Я не меньше вас хочу увидеть вторую часть, но не хочу из-за спешки сделать плохо, и так даже в первой части многим пришлось пожертвовать чтобы не выпускать её через пол года.
Планируется от трёх до пяти частей. В конечном итоге напишем классное бекенд-приложение. Но это требует времени. Ваша лучшая поддержка это лайки комментарии и подписки на каналы и в приватку
Возможно сейчас пару дней посушу вёсла, а то пиздееец как устал( И буду выкакивать в этот канал какие-то постики. А может не буду. Всех обнял
Please open Telegram to view this post
VIEW IN TELEGRAM
❤344👍42🔥18🙏12😢3
This media is not supported in your browser
VIEW IN TELEGRAM
Нилчановцы признавайтесь кто из вас жоско напиздел в резюме и в додо пиццу на ios разработчика залетел?
TraditionalThinTraditionalThinTraditionalThin
TraditionalThinTraditionalThinTraditionalThin
😁168🤣20🤯5❤3👍3
так, меня в комментах просветили, автоплатёж есть, его надо было просто поискать🥳
ну vds всё равно пидоры, ну а чё они внатури ну в самом деле ну
ну vds всё равно пидоры, ну а чё они внатури ну в самом деле ну
Please open Telegram to view this post
VIEW IN TELEGRAM
😁45👍6❤4
tl;dr https://t.me/nilchanbot/nilchanbase
База знаний в нашей приватке стремительно растёт, и я понял, что если продолжу в текущем виде отгружать новые инсайды/гайды/контент в приватное сообщество, то навигироваться по всему этому будет максимально неудобно. Многие скажут "хештег повесил и кайфуй" но нет, навигация по хештегам это лютый кал, ты просто пишешь в поиске хештег, и получаешь миллион сообщений, которые хуй пойми вообще в чему относятся. А учитывая, что у нас на подходе инсайды на новые стеки (qa/ios/android/etc), то что-то с организацией информации срочно нужно было предпринять.
Я долго думал как лучше поступить, пока меня не посетила идея сделать мини-приложение, где все наши знания из приватного сообщества будут организованы в виде графа, по которому можно будет максимально удобно находить нужную тебе информацию. Поначалу мне слабо верилось что я смогу что-то подобное реализовать, всё-таки миниприложение это в том числе фронтенд, с которым я не то что на "вы", скорее на "увы", да и как мне автоматизировать агрегацию информации из чата в что-то, что можно скормить фронтенду, чтобы этот самый фронтенд нарисовал мне граф... Но идея с миниприложением уж слишком сильно меня вдохновила, чтобы я с таким количеством лет анальной айтишки за спиной не решился попробовать реализовать задуманное.
Как это всё устроено в техническом плане мы разберём в следующих постах, там скорее для гиков, которым интересно как это всё живёт под капотом, а система в итоге получилась достаточно масштабная, я думаю будет о чём рассказать)
А пока те, кто уже вступил в приватку, могут смотреть прикреплённый видос для того, чтобы научиться пользоваться нашей новой базой знаний.
Те, кто не вступил в приватку — вступайте: @nilchanbot
База знаний в нашей приватке стремительно растёт, и я понял, что если продолжу в текущем виде отгружать новые инсайды/гайды/контент в приватное сообщество, то навигироваться по всему этому будет максимально неудобно. Многие скажут "хештег повесил и кайфуй" но нет, навигация по хештегам это лютый кал, ты просто пишешь в поиске хештег, и получаешь миллион сообщений, которые хуй пойми вообще в чему относятся. А учитывая, что у нас на подходе инсайды на новые стеки (qa/ios/android/etc), то что-то с организацией информации срочно нужно было предпринять.
Я долго думал как лучше поступить, пока меня не посетила идея сделать мини-приложение, где все наши знания из приватного сообщества будут организованы в виде графа, по которому можно будет максимально удобно находить нужную тебе информацию. Поначалу мне слабо верилось что я смогу что-то подобное реализовать, всё-таки миниприложение это в том числе фронтенд, с которым я не то что на "вы", скорее на "увы", да и как мне автоматизировать агрегацию информации из чата в что-то, что можно скормить фронтенду, чтобы этот самый фронтенд нарисовал мне граф... Но идея с миниприложением уж слишком сильно меня вдохновила, чтобы я с таким количеством лет анальной айтишки за спиной не решился попробовать реализовать задуманное.
Как это всё устроено в техническом плане мы разберём в следующих постах, там скорее для гиков, которым интересно как это всё живёт под капотом, а система в итоге получилась достаточно масштабная, я думаю будет о чём рассказать)
А пока те, кто уже вступил в приватку, могут смотреть прикреплённый видос для того, чтобы научиться пользоваться нашей новой базой знаний.
Те, кто не вступил в приватку — вступайте: @nilchanbot
Media is too big
VIEW IN TELEGRAM
🔥60❤17❤🔥9👍1🤡1
Как миниприложение работает под капотом? Часть 1.
(в конце изображение со схемой всей системы)
Чтобы в телеграмме создать миниприложение, необходимо иметь постоянную https ссылку на веб-страницу, которая будет открываться в среде телеграмма и называться собственно миниприложением. То есть миниприложение — это просто сайтик, который открыт в среде телеграмма. То есть сразу нужны:
— Веб-морда. Верстай как хочешь, но без веб-морды нет и миниприложения.
— HTTPS подключение. То есть сертификаты. То есть нужен домен.
Ну сразу вырисовывается стандартная картина фронтент+бекенд, где продовый бекенд крутится на сервере с купленным доменом, плюс ещё каким-то образом нужно HTTPS соединение поддержать (раньше я ничего подобного не делал своими руками).
Хорошо, допустим с вёрсткой веб-морды и покупкой домена я как-то разберусь. Но откуда вообще брать инфу для построения графа? На каждый новый пост в базе знаний лезть в продовую бд и руками править json-представление графа? Нууу... заебусь и окончательно облысею от такого капитального заёба. Нужно как-то автоматизировать агрегацию информации из базы знаний, чтобы я мог просто накакать новый пост, а этот новый пост сам подсосался в граф и как следствие в миниприложение. Как?
Решение оказалось довольно очевидное. Телеграмм (до сих пор не знаю одна тут м должна быть или две) чаты поддерживают возможность копировать ссылки на сообщения, и есть возможность по нажатию на эти самые ссылки — сразу переходить на нужное сообщение, то есть телега сама перекидывает юзера на нужный топик + нужное сообщение, да ещё и подсвечивает это самое сообщение. Получается я могу все сообщения запихнуть в один топик (не обязательно в один, но в одном удобнее), в одних сообщениях давать ссылки на другие, в этих других сообщениях давать ссылки на третьи сообщения, ну и так далее. То есть уже вырисовывается графовое представление всей базы знаний, благодаря возможности телеграмма переходить на конкретное сообщение со ссылке. Осталось только это всё добро как-то автоматически парсить и строить по этой инфе json, который я буду отдавать фронтенду, и по которому этот самый фронтенд будет строить nilchan-obsidian😄
У тг-ботов нет возможности читать произвольные сообщения в чате. Зато такая возможность есть у меня. Но как мне заставить программу от моего имени открыть чат, начать читать сообщения и переходить по ссылкам на другие сообщения? А у телеграмма даже такая возможность есть. Можно на сайте телеги зарегистрировать своё приложение, тебе выдадут api_id+api_hash, по которым ты сможешь коннектиться к апи телеграмма и делать практически любые действия от своего имени, только при помощи программы (можно даже сообщения другим людям отсылать, но я так один раз чуть акк не проебал из-за того, что кто-то на спам пожаловался xd). Но голая telegram api выглядит очень страшно, а вот разного рода обёрточки на питончике выглядят уже более привлекательно. Решил не экспериментировать с аналогами на гошке, и взял telethon либу для питона, и поехали.
Получается алгоритм такой: изначально даю программе ссылку на корневое сообщение (корневую ноду) в базе знаний в телеграмм-чате. Эта программа получает текст сообщения, парсит все ссылки из этого сообщения, и если эта ссылка — это ссылка на другое телеграмм-сообщение, то переходит на это другое телеграмм-сообщение и повторяет алгоритм (опять ищет все ссылки на другие сообщения и переходит на них). Параллельно запоминая каждое сообщение в котором мы побывали + запоминая переходы между сообщениями (из какого конкретно сообщения дана ссылка на другое сообщение, чтобы понимать как рисовать связи между нодами). Получается тот самый обход графа в глубину) А вы говорите алгоритмы не нужны. Шучу. Не шучу. В общем окей, спарсили целый топик, построили граф, сдампили в json. Что дальше?
(в конце изображение со схемой всей системы)
Чтобы в телеграмме создать миниприложение, необходимо иметь постоянную https ссылку на веб-страницу, которая будет открываться в среде телеграмма и называться собственно миниприложением. То есть миниприложение — это просто сайтик, который открыт в среде телеграмма. То есть сразу нужны:
— Веб-морда. Верстай как хочешь, но без веб-морды нет и миниприложения.
— HTTPS подключение. То есть сертификаты. То есть нужен домен.
Ну сразу вырисовывается стандартная картина фронтент+бекенд, где продовый бекенд крутится на сервере с купленным доменом, плюс ещё каким-то образом нужно HTTPS соединение поддержать (раньше я ничего подобного не делал своими руками).
Хорошо, допустим с вёрсткой веб-морды и покупкой домена я как-то разберусь. Но откуда вообще брать инфу для построения графа? На каждый новый пост в базе знаний лезть в продовую бд и руками править json-представление графа? Нууу... заебусь и окончательно облысею от такого капитального заёба. Нужно как-то автоматизировать агрегацию информации из базы знаний, чтобы я мог просто накакать новый пост, а этот новый пост сам подсосался в граф и как следствие в миниприложение. Как?
Решение оказалось довольно очевидное. Телеграмм (до сих пор не знаю одна тут м должна быть или две) чаты поддерживают возможность копировать ссылки на сообщения, и есть возможность по нажатию на эти самые ссылки — сразу переходить на нужное сообщение, то есть телега сама перекидывает юзера на нужный топик + нужное сообщение, да ещё и подсвечивает это самое сообщение. Получается я могу все сообщения запихнуть в один топик (не обязательно в один, но в одном удобнее), в одних сообщениях давать ссылки на другие, в этих других сообщениях давать ссылки на третьи сообщения, ну и так далее. То есть уже вырисовывается графовое представление всей базы знаний, благодаря возможности телеграмма переходить на конкретное сообщение со ссылке. Осталось только это всё добро как-то автоматически парсить и строить по этой инфе json, который я буду отдавать фронтенду, и по которому этот самый фронтенд будет строить nilchan-obsidian
У тг-ботов нет возможности читать произвольные сообщения в чате. Зато такая возможность есть у меня. Но как мне заставить программу от моего имени открыть чат, начать читать сообщения и переходить по ссылкам на другие сообщения? А у телеграмма даже такая возможность есть. Можно на сайте телеги зарегистрировать своё приложение, тебе выдадут api_id+api_hash, по которым ты сможешь коннектиться к апи телеграмма и делать практически любые действия от своего имени, только при помощи программы (можно даже сообщения другим людям отсылать, но я так один раз чуть акк не проебал из-за того, что кто-то на спам пожаловался xd). Но голая telegram api выглядит очень страшно, а вот разного рода обёрточки на питончике выглядят уже более привлекательно. Решил не экспериментировать с аналогами на гошке, и взял telethon либу для питона, и поехали.
Получается алгоритм такой: изначально даю программе ссылку на корневое сообщение (корневую ноду) в базе знаний в телеграмм-чате. Эта программа получает текст сообщения, парсит все ссылки из этого сообщения, и если эта ссылка — это ссылка на другое телеграмм-сообщение, то переходит на это другое телеграмм-сообщение и повторяет алгоритм (опять ищет все ссылки на другие сообщения и переходит на них). Параллельно запоминая каждое сообщение в котором мы побывали + запоминая переходы между сообщениями (из какого конкретно сообщения дана ссылка на другое сообщение, чтобы понимать как рисовать связи между нодами). Получается тот самый обход графа в глубину) А вы говорите алгоритмы не нужны. Шучу. Не шучу. В общем окей, спарсили целый топик, построили граф, сдампили в json. Что дальше?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28⚡3❤2🍓2
Как миниприложение работает под капотом? Часть 2.
А дальше нужно думать, как лучше организовать отдачу собранного json'а. Если я на каждое открытые веб-страницы (на каждый запрос на получение графа в бекенд) буду прогонять описанный выше алгоритм, то веб-страница будет открываться очень долго, секунд 10-15, но как вы видите открывается она практически моментально. Всё потому, что было принято решение раз в N времени (сейчас это раз в пол часа) прогонять описанную программу (называл её crawler, типо как в гугл хроме, типо крутой в общем), crawler собирает раз в пол часа актуальный json и сохраняет его в файл.Вы знали что в linux'е для периодического запуска команд существует утилита cron + crontab для её настройки? Потом уже на запрос от фронтенда "дай мне json представление графа" я просто буду отдавать готовый файлик, что стократно быстрее.
Хорошо, мы умеем автоматически читать базу знаний из приватки и собирать по ней json граф, что дальше? Дальше вопрос как организовать HTTPS подключение к серверу. Поизучав информацию, я понял что можно воспользоваться Caddy (современный аналог nginx, только caddy АВТОМАТИЧЕСКИ сгенерирует мне сертификат и подпишет его, БЕСПЛАТНО😏 ). Плюс Caddyfile (аналог nginx.conf) выглядит ну гораздо приятнее и понятнее аналога от nginx.
ХАРАШО, бекенд считай готов. Crawler раз в пол часа собирает json, Caddy по https умеет этот json отдавать (на самом деле я написал гошную приложуху в 1 эндпоинт, которая читает json файл и отдаёт его, а Caddy уже ходит за json'ом в эту гошную приложуху, но мне просто хотелось чтобы в этом большом проекте была частичка гошки xd, так то понятно что можно было этот самый json как статику отдавать напрямую через Caddy). Понятное дело что как Caddy, так и Crawler, так и гошная приложуха на 1 эндпоинт — всё завёрнуто в докер-контейнеры и деплоятся одной кнопкой через Makefile + dockercompose.
Что с фронтендом? Как рисовать граф? Сначала я пытался понять как obsidian строит свои графы (ведь у обсидиана есть веб-версия, как-то же они это делают), но в итоге наткнулся на библиотеки для React'а для построения графа. Был выбор из нескольких, одна более красиво рисует граф но ужасно регистрирует касания и клики, вторая не так красиво отрисовывает но замечательно регистрирует пользовательский ввод. Очевидно смысла в красивом но неудобном графе нет, поэтому был выбран не самый красивый но наиболее удобный вариант (вы его видите в миниприложухе).
Окей, есть библиотека для реакта, но я в душе не ебу как этот реакт устроен, как на нём писать, как устроено взаимодействие компонентов, и что самое главное как это потом деплоить в прод. И тут я бы мог встрять на пару месяцев, но мне на помощь пришла моя девушка, которая уже какое-то время изучает фронтенд на реакте, она помогла мне разобраться, так сказать, в базовых ценностях, да и компоненты поиска и инфопанели (которые вы видите в миниприложении) она верстала, за что ей большое спасибо.
Фронтенд был самой сложной и мучительной частью, этот css это просто пиздец, 99999 свойств на один эффект и нахуй ни одно свойство не работает как надо. Плюс борьба с телеговской средой запуска веб-страниц, в которой если я открываю клавиатуру (например когда хочу в поиске что-то вбить), то нахуй рабочая область уменьшается в 2 раза и по пизде едет вся вёрстка. Тут уже пришлось 10 тысяч запросов в нейронку написать, чтобы на десять тысяч первый запрос она выдала рабочее решение, которое с помощью ебейшего костыля помогает обойти эту особенность телеграм-среды для веб-страниц.
Кое-как допинали этот фронтенд до адекватного внешнего вида, теперь вопрос как это деплоить. Опять же поискав инфу, я узнал что React приложения компилируются в js+css+html, и потом на проде веб-сервером (nginx или Caddy) просто отдаются как статика. Интересно. В общем описываю докер-контейнер который на базе nodejs-имаджа собирает прям на прод-сервере мне статику и через docker-volume отдаёт её в папку, из которой уже Caddy отдаёт полученные файлы в качестве веб-страницы юзеру.
А дальше нужно думать, как лучше организовать отдачу собранного json'а. Если я на каждое открытые веб-страницы (на каждый запрос на получение графа в бекенд) буду прогонять описанный выше алгоритм, то веб-страница будет открываться очень долго, секунд 10-15, но как вы видите открывается она практически моментально. Всё потому, что было принято решение раз в N времени (сейчас это раз в пол часа) прогонять описанную программу (называл её crawler, типо как в гугл хроме, типо крутой в общем), crawler собирает раз в пол часа актуальный json и сохраняет его в файл.
Хорошо, мы умеем автоматически читать базу знаний из приватки и собирать по ней json граф, что дальше? Дальше вопрос как организовать HTTPS подключение к серверу. Поизучав информацию, я понял что можно воспользоваться Caddy (современный аналог nginx, только caddy АВТОМАТИЧЕСКИ сгенерирует мне сертификат и подпишет его, БЕСПЛАТНО
ХАРАШО, бекенд считай готов. Crawler раз в пол часа собирает json, Caddy по https умеет этот json отдавать (на самом деле я написал гошную приложуху в 1 эндпоинт, которая читает json файл и отдаёт его, а Caddy уже ходит за json'ом в эту гошную приложуху, но мне просто хотелось чтобы в этом большом проекте была частичка гошки xd, так то понятно что можно было этот самый json как статику отдавать напрямую через Caddy). Понятное дело что как Caddy, так и Crawler, так и гошная приложуха на 1 эндпоинт — всё завёрнуто в докер-контейнеры и деплоятся одной кнопкой через Makefile + dockercompose.
Что с фронтендом? Как рисовать граф? Сначала я пытался понять как obsidian строит свои графы (ведь у обсидиана есть веб-версия, как-то же они это делают), но в итоге наткнулся на библиотеки для React'а для построения графа. Был выбор из нескольких, одна более красиво рисует граф но ужасно регистрирует касания и клики, вторая не так красиво отрисовывает но замечательно регистрирует пользовательский ввод. Очевидно смысла в красивом но неудобном графе нет, поэтому был выбран не самый красивый но наиболее удобный вариант (вы его видите в миниприложухе).
Окей, есть библиотека для реакта, но я в душе не ебу как этот реакт устроен, как на нём писать, как устроено взаимодействие компонентов, и что самое главное как это потом деплоить в прод. И тут я бы мог встрять на пару месяцев, но мне на помощь пришла моя девушка, которая уже какое-то время изучает фронтенд на реакте, она помогла мне разобраться, так сказать, в базовых ценностях, да и компоненты поиска и инфопанели (которые вы видите в миниприложении) она верстала, за что ей большое спасибо.
Фронтенд был самой сложной и мучительной частью, этот css это просто пиздец, 99999 свойств на один эффект и нахуй ни одно свойство не работает как надо. Плюс борьба с телеговской средой запуска веб-страниц, в которой если я открываю клавиатуру (например когда хочу в поиске что-то вбить), то нахуй рабочая область уменьшается в 2 раза и по пизде едет вся вёрстка. Тут уже пришлось 10 тысяч запросов в нейронку написать, чтобы на десять тысяч первый запрос она выдала рабочее решение, которое с помощью ебейшего костыля помогает обойти эту особенность телеграм-среды для веб-страниц.
Кое-как допинали этот фронтенд до адекватного внешнего вида, теперь вопрос как это деплоить. Опять же поискав инфу, я узнал что React приложения компилируются в js+css+html, и потом на проде веб-сервером (nginx или Caddy) просто отдаются как статика. Интересно. В общем описываю докер-контейнер который на базе nodejs-имаджа собирает прям на прод-сервере мне статику и через docker-volume отдаёт её в папку, из которой уже Caddy отдаёт полученные файлы в качестве веб-страницы юзеру.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤5🏆2💯1
Как миниприложение работает под капотом? Часть 3.
Я пока опускаю очень много неожиданной головной ебли в виде различных CORS-политик (это когда ты через curl делаешь запрос на прод — всё работает, делаешь запрос из js-приложения — хуй тебе на нос, ошибка доступа) и прочих прелестей, ибо тогда написание этих постов займёт ещё пару недель, а до конца дочитает 1% населения нилчана.
Так же в миниприложении у некоторых нод вы можете видеть изображения (иконки). Опять же вопрос откуда эти изображение брать и что самое главное как эти новые изображения добавлять, да так, чтобы мне не приходилось каждый раз руками лезть в файловую систему прод-сервера, закидывать туда изображение, дописывать в React-приложуху новый путь до нового изображения, и пересобирать полностью React-приложуху, чтобы изменения были видны юзерам. Решение: S3 сервер. И есть отличное решение: open-source'ный бесплатный S3-совместимый сервер: minio. Его я развернул так же в докер-контейнере на проде, через Caddy на отдельном суб-домене организовал туда доступ, и теперь могу в веб-интерфейсе докидывать новые изображения, а потом в Crawler'е генерировать ссылки на эти изображения, и складывать их в тот же json, куда кладу граф (понимаю, для новичка это просто набор букав, но статья чисто для гиков). Благодаря чему больше нет необходимости лезть на прод и что-то там пересобирать просто для того, чтобы добавить новую изображеньку в миниприложение.
А так, в целом, касаемо миниприложения, всё) Кажется глобально ничего не забыл
Я пока опускаю очень много неожиданной головной ебли в виде различных CORS-политик (это когда ты через curl делаешь запрос на прод — всё работает, делаешь запрос из js-приложения — хуй тебе на нос, ошибка доступа) и прочих прелестей, ибо тогда написание этих постов займёт ещё пару недель, а до конца дочитает 1% населения нилчана.
Так же в миниприложении у некоторых нод вы можете видеть изображения (иконки). Опять же вопрос откуда эти изображение брать и что самое главное как эти новые изображения добавлять, да так, чтобы мне не приходилось каждый раз руками лезть в файловую систему прод-сервера, закидывать туда изображение, дописывать в React-приложуху новый путь до нового изображения, и пересобирать полностью React-приложуху, чтобы изменения были видны юзерам. Решение: S3 сервер. И есть отличное решение: open-source'ный бесплатный S3-совместимый сервер: minio. Его я развернул так же в докер-контейнере на проде, через Caddy на отдельном суб-домене организовал туда доступ, и теперь могу в веб-интерфейсе докидывать новые изображения, а потом в Crawler'е генерировать ссылки на эти изображения, и складывать их в тот же json, куда кладу граф (понимаю, для новичка это просто набор букав, но статья чисто для гиков). Благодаря чему больше нет необходимости лезть на прод и что-то там пересобирать просто для того, чтобы добавить новую изображеньку в миниприложение.
А так, в целом, касаемо миниприложения, всё) Кажется глобально ничего не забыл
🔥18❤3🍓3👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29❤1🫡1
Есть широко распространённое в узких кругах мнение, что в тг-канале следует стабильно поддерживать активность, независимо от того, есть ли тебе что сказать, есть ли чем поделиться — пофик, даже если нет — придумай очередную гойду "бляяя hr'ы ваще плохие кароче бляяя" и запости, а иначе как же, люди забудут про тебя, ты же ничего не постишь в канал. Возможно оно так и есть, но я что-то пока не дозрел в своём познании до этого, ну это же как ебаный дейлик: обязан высрать из себя хоть что-то, даже если по-сути сказать то и нечего. Поэтому если кто-то не может без стабильного упоминания коварности найма, злого кабанчика и абсолютно прорывной и свежей ранее нигде и никем не упомянутой идеи о том, что нужно крутить опыт — штош, nilchan pub не сможет удовлетворить вашу потребность. Это всё к вопросу о том, почему новые посты публикуются настолько редко.
А так, почему я вообще решил прервать радиомолчание: на днях выбрались за город, сняли на авито домик на сутки, и просто поймали подарок судьбы — хорошую солнечную погоду среди затяжной питерской ебливой серости. Пожарили шашлык, надышались свежим воздухом, набухались, поиграли в карты. Как же иногда не хватает простого человеческого вот этого вот всего. Делюсь с вами частичкой этого вайба🏕
А так, почему я вообще решил прервать радиомолчание: на днях выбрались за город, сняли на авито домик на сутки, и просто поймали подарок судьбы — хорошую солнечную погоду среди затяжной питерской ебливой серости. Пожарили шашлык, надышались свежим воздухом, набухались, поиграли в карты. Как же иногда не хватает простого человеческого вот этого вот всего. Делюсь с вами частичкой этого вайба
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤69🔥35👍5🤡5💘2
ладно советский автопром как обычно творит чудеса и превращается в космолёт в нужный момент
да, сам проебался и въехал в это дерьмо, но как же я ебал блядей которые у нас в лен области отвечают за дороги общего пользования... просто блять ахуенная стратегия, вскрыть половину асфальта в начале лета и НИХУЯ не делать месяц чтобы самое адекватное место для проезда была обочина, на которой заботливо оставлен открытый люк
сука яйца отгрызать надо за такое, ну просто блядство ебаное, ну пиздишь ты бабки ну пизди, но работу то хоть выполни пидорасина ты такая
да, сам проебался и въехал в это дерьмо, но как же я ебал блядей которые у нас в лен области отвечают за дороги общего пользования... просто блять ахуенная стратегия, вскрыть половину асфальта в начале лета и НИХУЯ не делать месяц чтобы самое адекватное место для проезда была обочина, на которой заботливо оставлен открытый люк
сука яйца отгрызать надо за такое, ну просто блядство ебаное, ну пиздишь ты бабки ну пизди, но работу то хоть выполни пидорасина ты такая
❤51💯11🤣9😡3👍2🤩1🤮1
Активно пилю вторую часть полного курса по гошке, как обычно будет 12 часов отборного материала, не теряйте
🐟 Сомы 🐟 , ставьте лайк если ждёте
Please open Telegram to view this post
VIEW IN TELEGRAM
❤324👍73🐳20🔥17💯9🙏4🍌2😘2💊2👏1🆒1
Тем временем база знаний нашего сообщества кратно выросла. На скриншотах "до" и "после". (скрины FullHD 4K, да, а что, могу себе позволить). Появилось много гайдов на трудоустройство и ещё большее количество инсайдов с собеседований, очень актуально для тех, кто только планирует или уже ищет работу.
Для новичков, которые успели продвинуться дальше нашей первой части полного курса по гошке, но всё ещё не уверены в своих силах, у нас появилось задание на пет-проект, после выполнения которого уже можно смело идти искать работу.
Дверку для вступления в сообщество тут аккуратно оставлю: @nilchanbot
Для новичков, которые успели продвинуться дальше нашей первой части полного курса по гошке, но всё ещё не уверены в своих силах, у нас появилось задание на пет-проект, после выполнения которого уже можно смело идти искать работу.
Дверку для вступления в сообщество тут аккуратно оставлю: @nilchanbot
🔥45👍3👏2💋1💘1
nilchan pub
Тем временем база знаний нашего сообщества кратно выросла. На скриншотах "до" и "после". (скрины FullHD 4K, да, а что, могу себе позволить). Появилось много гайдов на трудоустройство и ещё большее количество инсайдов с собеседований, очень актуально для тех…
проблемы белых людей
🤣123🤡10😁5❤3👍2🕊2🍓1