Мой web-dev
45 subscribers
50 photos
1 video
62 links
Привет, я php-бэкендер, делюсь своими мыслями и наработками
Download Telegram
Ни минуты покоя

Купил себе еще на новый год Raspberry Pi 5, но пришла только на днях
Сел разбираться как ее теперь включить, не имея ни монитора, на клавиатуры, ни мыши - максимальный headless
Казалось бы, ну это же RPI, самый известный и раскрученный одноплатник. Там все должно работать просто по щелчку пальца и вообще без боли, но нет :)))

Я два часа провел, пытаясь бутнуть ее с внешнего ссд. Вроде бы образ прожег, креды для wifi и ssh в конфиге верные, подключаю к питанию - горит зеленым и моргает; даже пингуется!*
На форумах прочитал, что первый раз она грузится долго, подождал минут 15 - без успеха
Залез даже на морду роутера, чтобы смотреть кто сейчас подключен к wifi, но малины там не было

В итоге оказалось, что малина сначала горит красным, потом моргает один раз долго и один раз коротко. Что это значит? Правильно! Мой блок питания по ее мнению - говно. Ей подавай только заморский за 2к + доcтавка + налоги + на пиво.
Что еще интереснее так это то, что где-то в недрах потного форума обладателей малинок есть тред в котором говорится, что там где-то в неведомых краях в мануале черным по белому написано, что если блок питания не родной, то надо после сигнала малины прожать кнопку питания и все заведется.

И ведь завелось! Теперь дело за малым - сделать как-то ее видимой из внешней сети, настроить реверс-прокси и начать пилить потихоньку пет-проекты :)

* на самом деле, при прожиге образа я указал имя малины как ddruganov - ровно такое же, как и у компа, с которого пытался тыкаться по ssh; счастливо делая ping ddruganov.local я видел, что малина пингуется, а вот ssh почему-то не работает, не открыт 22 порт; ответ простой - я пинговал сам себя, думая что пингую малину; стоило пережечь образ и указать ей имя как dd-rpi, как она сразу же перестала пинговаться :D
Продолжаем веселье

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

Вот только почему-то пока этим занимался, малина перестала пинговаться через dd-rpi.local. Не понос, так золотуха)
Как-то все слишком просто

Чем больше вожусь с raspberry pi, тем больше понимаю, что весь процесс разворачивания базовой инфраструктуры все больше аналогичен простому запуску exe-файла инсталлятора на винде. Да, есть нюансы вроде настройки реверс прокси и прокидывания портов, но в целом ситуация следующая:
- Надо мониторинг? Вот тебе docker-compose файл графаны с прометеусом
- Надо гитлаб? Вот тебе docker-compose файл, запускай и поехали

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

Дальше у меня по плану развернуть на малине раннеры для ci/cd, но я это уже делал на других машинах и процесс по факту сводится к запуску одной команды

Очень смешанные чувства по этому поводу: с одной стороны - круто, что можно просто так вот взять и поднять дома полноценную инфраструктуру и поизучать что к чему, а с другой стороны - это сильно снижает порог входа и то, что 5 лет назад считалось продвинутым использованием теперь считается базой
Вообще, я когда еще не занимался программированием, то думал, что люди, держащие сервера дома, выделают под них целые комнаты, прям как для настоящего сервера - с кучей стоек, лампочек, проводов, с вечным шумом. Как же на деле выглядит домашняя серверная можно посмотреть на пикрелейтед. Надеюсь, когда-нибудь доживу до нормальной стойки)))

Кстати, я наконец-то обзавелся собственным сайтом - ddruganov.ru
Пока не придумал зачем он мне, но просто весело пока скидывать друзьям эту ссылку, а там... ну, сами посмотрите)
Хорошие новости!

Меня сократили🥲

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

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

Ждите очередных постов про собесы и экстренное трудоустройство, будет весело (надеюсь) 😃
Это speech 100 или speech 1?

С другой стороны, наверное, можно собой гордиться 😃
Новое начало

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

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

В резюме я выставил, что я Middle+. На собесе в компании, куда я ухожу, спросили почему Middle+, а не Senior. Я ответил, что это психологический барьер.
А через пару дней подумал - а правда, какого это черта я не могу написать, что я сеньер? Ну и написал :D
И после этого просмотры резюме на хх поперли как сумасшедшие, жаль только, что уже поздно было - принял оффер. Интересная, однако, ситуация получается на рынке.
Красивое начало

У меня с самого начала как я собрал печку были постоянные фризы и краши. Почти всегда проблема была в ошибках доступа к памяти.
Полгода жил, иногда перезагружая комп, но недавно решил выяснить что же все-таки не так.
Накатил чистейший дебиан, обновил биос до самой свежей версии, в самом биосе выставил огромную кучу настроек, но ничего не помогало.
Решил проверить мемтестом - оставил на 3-4 часа и мне вывалило огромную кучу ошибок. Понес в сервис, сказали проверят, но скорее всего проблема в процессоре и его модуле управления памятью :(

Сегодня из-за того что забрали рабочий ноут очень резко потребовалось продолжить работу на компе, поэтому пришлось ехать покупать оперативу.
У нас в городе, оказывается, с этим беда какая-то. Нормальная память была только в одном отделении DNS в жопе города.
Купил цветастую, на 32 гига, 6ГГц. Отдал за нее аж целых 14 косарей. Жалко, но что поделать, подработка не терпит ожиданий, а денег она принесет явно куда больше, чем траты на оперативку.
И что же произошло? Правильно! Абсолютно ничего, комп работает с 11 утра и еще ни разу не застыл, не упал, не выдал ошибок. Я в восторге. Надеюсь, теперь вообще никогда не придется вырубать комп.

А через пару часов после покупки мне позвонили из сервиса и сказали, что с памятью все ок, можно забирать. Похоже, она просто не подходит то ли к материнке, то ли к процу.
Любуемся😊
Сектор go на барабане

Вот сидишь такой спокойно в понедельник вечером, смотришь ютуб, как вдруг тебя как в жопу жалит и ты ставишь себе компилятор голанга
В следующий раз очнешься через 3 часа, когда сделал малюсенькое веб-приложение и начал пилить cli-утилиту
Опасно

А если серьезно, то на подработке мне недавно попалась задача по импорту адресов из базы ГАР ФИАС
И так она мне засела в душу и так долго* выполнялась на пхп, что я решил попробовать в жизни что-нибудь новенькое и переписать ее на голанге
* Под "долго" подразумевается 43 секунды на полный цикл импорта

Вот сейчас закончил приборку в проекте и голанг мне выдал 30 секунд на все
Каюсь, я выбрал плохую задачу - она на 80% полагается на базу (инсерты батчами по 50к строк)
Но разница в 13 секунд все равно очень радует
И это я еще не распараллеливал импорт, руки не дошли пока

Мне очень понравилось, что там из коробки нормально работает хттп-сервер и аргументы cli-скриптов
А еще прям супер легко организовать потоковое чтение из xml файла и парсинг отдельных его кусков в структуры
Бесит только каждый раз ребилдить, очень непривычно

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

Я убил Debian
Не специально, конечно, но кто же знал, что если у тебя KDE и ты решил поставить Gnome Disk Manager, то твоей системе, простите, пиздец?
Ничего не предвещало беды, но когда отказал блютус я понял, что дело пахнет жареным
Попытался как можно скорее закоммитить изменения, но оказалось, что команды git не существует! Весело!
Пришлось по старинке паковать проекты в архив и кидать себе на почту :D
Практически сразу после этого меня выкинуло из системы и больше зайти я уже не смог

Вот здесь и начинается самый прикол - никакого компа, кроме основного у меня нет. Макбук со старой работы уже забрали, а на ноуте с новой работы еще нет системы (DOS не в счет)
... так я думал, пока не вспомнил, что у меня есть мой замечательный Raspberry Pi 5
Вот только проблема в том, что на нем нет экрана, а единственное устройство с которого можно подключить по ssh - мой телефон
Поэтому пришлось как настоящему админу заливать образ убунты на флешку, имея доступ только к терминалу

Опыт прекрасный, повторять больше не хочу
Хотя на самом деле я сам удивился насколько легко стало общаться с терминалом за последние годы
Channel photo updated
Чудеса проектирования апи для взаимодействия с CRM🙄
Очередной первый месяц

26го числа уже месяц как работаю в новой компании
За последний год я повторяю эту фразу уже третий раз xD

В целом все отлично, тимлид доволен, я тоже
Одной из первых на меня прилетела задача со статусом "крит", которая была в бэклоге уже 4 месяца👍

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

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

Жизнь продолжается, вроде пока уволнять не собираются :)
Я кстати себе офис снял отдельный
Я никогда не знал вообще, что это такое, когда ты приходишь на работу и ты один. Всегда рядом были люди, в последние пару месяцев вообще семья
А тут благодать - можно творить что угодно и никто ничего не скажет. И про барабаны тоже :)
Единственный минус, что кофе приходится отдельно покупать и микроволновки нет
Буквально вчера смотрел доклады с хайлоада об отказоустойчивости сервисов и фолбэках и сегодня на авито вижу вот это:
Давайте-ка я кое в чём сознаюсь

После того как переехал работать в офис дома остался только ноут
Так как живу я не один, да и самому иногда надо, на ноуте поставлена винда 11
Вместе с этим никуда не делась подработка, которую зачастую приходится делать дома

И вот, честно говоря, разница с линуксом была только в том, что пришлось поставить WSL2 и Docker Desktop. Все!
В остальном все абсолютно такое же, даже просадок по производительности нет:
- докер работает
- дебаггер работает
- терминал в шторме открывается сразу внутри WSL2
- проблем с правами нет
- порты из докер композа автоматом пробрасываются в винду и в браузере доступно все, что кодишь в WSL2

Да, у меня простое рабочее окружение на подработке, там нет даже кубера, но думаю и с этим проблем бы не возникло

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

https://youtu.be/6Riy9hVIFDE?si=XwRbWXaKxIvAc_jF
Ребята, я стал лидом

В среду мне позвонил СТО, сказал, что я закончил испытательный срок
После этого вывалил мне супер инфу о том, что меня назначают лидом, дают команду и большой проект, а сегодня рассказал об этом всем на дейлике
Что думать - я пока хз; пока что просто непонятно как это все будет происходить, опыта-то нет

Вообще, я рад, но я очень надеюсь, что не уйду совсем в менеджерство, слишком люблю кодить
Из-за леса, из-за гор

... прилетела задача по перевозу 13 приложений на выделенную бд.

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

Но приложений меньше не становится, а смотреть на вывод docker ps становится страшно
Да и бэкапы бы не помешало делать, желательно не через костыли
А хуже всего то, что я не могу через IDE залезть в базу приложения на дев/прод контурах и посмотреть что творится - приходится лезть через ssh на сервак и там уже в контейнере шариться в БД

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

Но проблема в том, что мне на месте не сидится и вместе с переездом БД я решил полностью перелопатить раскатывание приложений на проде, деве и локалке
Вышло-то на самом деле очень даже ничего:
1. удобно - вся раскатка делается одной командой
2. нет мусора - теперь есть всего один корневой docker-compose.yml, а вот доп настройки к нему цепляются через docker-compose.override.yml, которые соответствуют нужному окружению
3. универсально - проекты теперь раскатываются и выглядят в плане деплоя как один
4. на всех приложениях теперь php8.2 + jit + opcache
5. редис был успешно везде заменен на файловый кеш (если вообще использовался; было такое, что редис поднят, а коннекта к нему нет)

Без провалов не обошлось - один раз накатил тестовую базу на прод. Но это мелочи :)

В общем и целом опыт очень крутой. Всегда приятно заниматься стандартизацией и улучшением DX