creator cover seniorcat
seniorcat

seniorcat 

джуниор разработчик чего бы то ни было

4subscribers

9posts

goals1
0 of 10 paid subscribers
Если у тебя есть 10 подписчиков, значит ты не зря все это затеял

About

Я старый программист и не знаю слов тз. Давно работаю в ит, начал еще до того как это стало мейнстримом и зарплаты в сфере превратились в сказочные. Повидал всякое, верстал html страницы, делал сайты на ucoz, использовал cms wordpress, joomla, opencart, drupal и всякий самописный ужас. Писал самописный ужас сам. 
Языки php, js, go и всякая дополнительная мелочь html, css, sql, docker и тд ну вы знаете, тут еще много страшных слов чтобы люди подумали что я гуру. 
Сейчас открываю собственную онлайн-школу по программированию — делаю курсы, строю сообщество и показываю весь процесс изнутри.
Если хочешь расти как разработчик или просто заглянуть за кулисы — подписывайся.
Палиндром: простая задача для тренировки Go
Level required:
Подписчик
Как я организую контент-план
Как я планирую контент на год, чтобы не теряться в идеях и всегда знать, что делать дальше.
Level required:
Подписчик

Что нового? | Прогресс по курсам

Привет, друзья! 
Хочу поделиться с вами обновлениями по курсам, над которыми мы сейчас активно работаем 
В работе — курс “Введение в Docker для начинающих”
Если вы давно хотели понять, что такое Docker, зачем он нужен и как его применять в реальных проектах — этот курс для вас!
Будет простое объяснение, практика и минимум воды. Стартуем совсем скоро! 
 Дальше по плану — курс по Redis
Следующий на очереди — полноценный курс по Redis. Расскажем, как он устроен, зачем нужен, как его использовать в Go и не только. Планируется много практики и фишек из реальных проектов.
Кроме того, продолжаем улучшать уже опубликованные курсы и собирать ваши отзывы — они помогают нам делать контент лучше. Спасибо всем, кто пишет и участвует 
Если хотите поддержать выход новых курсов и получать ранний доступ — оформляйте подписку 
Взаимоотношения в коллекциях: особенности управления и рекомендации
symfony возвращает объект объектов вместо массива объектов при удалении объекта из коллекции Arraycollection
Level required:
Подписчик
Интересные (нет) рабочие рассказы #2
Узнайте, как использовать DateTimeImmutable в качестве первичного ключа в Doctrine с нашим кастомным типом
Level required:
Подписчик

Интересные (нет) рабочие рассказы #1

Дано: некоторый сайт на WordPress и немного трафика. Сайт периодически не справляется со всеми запросами и начинает страшно тормозить. Все кеши включены, CDN настроены.
Пришло время расти горизонтально.
Если вдруг кто-то не знает, есть два очень простых способа справляться с нагрузкой:
Вертикальное масштабирование - тупо наращиваем мощности сервера. Докупаем больше памяти, увеличиваем процессор и т.д.
Горизонтальное масштабирование - тупо покупаем второй сервер.
И очень часто получается так, что купить два сервера выгоднее, чем раздуть один. Поразмыслив с нашим DevOps, так и решили. Надо создать две ноды с сайтом. Это и быстро, и перезапускать ничего не надо, ведь трафик идет. Еще и можно сказать всем, что у нас отказоустойчивая архитектура: если одна нода ляжет, вторая перед тем, как тоже лечь, немного поработает.
Сказано - сделано. Выполняю команду для увеличения количества инстансов нашего сайта: kubectl -n apps scale deployment site --replicas 2. Наблюдаю в консоли deployment.apps/site scaled и иду проверять все это в Lens (очень удобная штука для просмотра, как там поживает кубер через GUI, а не через консоль). Там вижу два сайта.
Идем проверять, что все работает, как задумывалось. Сайт открывается, логин в админку открывается, после логина в админку летим на страницу 404. Тут надо сделать небольшое отступление - на сайте настроена штука, которая прячет админку и в случае разлогина или попытки сразу попасть в админку WordPress, редиректит на 404. Вот она и срабатывает, получается, что мы не можем авторизоваться в админке сайта.
Звучит вроде правильно, инстанса 2, если мы заходим на одном, второй про нас ничего не знает, надо их научить общаться. Ставим плагин для хранения всех сессий WordPress в Redis, поднимаем рядом Redis в Kubernetes, вписываем доступы к нему, перезапускаем - не работает. Все еще получаем 404.
Тут DevOps предлагает сравнить конфиги. И действительно, смотрим в файл wp-config.php и видим там разные ключи шифрования `AUTH_KEY`, `SECURE_AUTH_KEY` и т.д. Проблема найдена, осознана и готова быть решенной. Генерим новые ключи через стандартный генератор

Врываюсь с ноги в мир ИИ

Ну что все готовы к первому посту? Сложновато придумать так сразу что писать, но сейчас все пишут про chatGPT вот и я напишу. Наверняка вы все знаете как крут чатжпт и многие из вас уже пользовались его почти безграничными способностями. А я вам предлагаю маленький кусок кода который позволит через телеграм бота публиковать нейрошутки про ИТ прямо в телеграм канал. 
Чтобы все это работало вам необходимо: 
1. Качаете впн и регистрируетесь тут openai.com
2. Заходите сюда https://platform.openai.com/api-keys генерируете новый апи ключи и втавляете его вместо плюсов gpt.NewClient("++++++++++++++++++++++++++++++++++++")
3. Создаете телеграм канал или берете уже созданный и вытягиваете id канала.
4. Создаете бота в телеграм, получаете апи ключ от него и вставляете вместо enter bot api key here
Для этого есть куча ботов, подсказывать не буду, а то отправлю к скамерам, а вы меня потом на вилы поднимите. Меняете единицы на свой id msg := tgbotapi.NewMessage(-11111111111111111, resp.Choices[0].Message.Content) и запускаете.
Если шутки будут плохими, попробуйте поиграть с промтом, предложите чатуЖПТ представить себя стендап комиком или еще чего. 
Код тут выкладывать сложно, вот вам ссылка на гитлаб https://github.com/seniorcat/chatgpt-telegram-bot
Subscription levels1

Подписчик

$6.4 per month
Подписка дает доступ к закрытым постам 
Go up