en
Feedback
Бодрый кодер

Бодрый кодер

Open in Telegram

Меня зовут Лев, я IT Лидер в Альфа-Банке. Это мой личный блог о DevOps, разработке, системном анализе, AI и управлении IT-командами. Делюсь своими мыслями, инсайтами, полезными инструментами и тем, что меня вдохновляет. Автор: @nemirlev

Show more
569
Subscribers
+4124 hours
+457 days
+5830 days
Posts Archive
Китайцы выпустили новую нейросеть - LingGuang, она набирает пользователей быстрей чем ChatGPT. Ее прикол в том что она не про
+1
Китайцы выпустили новую нейросеть - LingGuang, она набирает пользователей быстрей чем ChatGPT. Ее прикол в том что она не просто отвечает, а генерирует мини приложения. Я проверил, во первых быстро, во вторых выглядят красиво. Доступна в AppStore, для регистрации нужен китайский номер телефона.

Huawei представил новый роутер, с поддержкой WiFi 7. Дизайн - мое почтение. Характеристики тоже в порядке - Основной блок осн
+1
Huawei представил новый роутер, с поддержкой WiFi 7. Дизайн - мое почтение. Характеристики тоже в порядке - Основной блок оснащается 512 МБ ОЗУ и 128 МБ постоянной памяти и поддерживает скорость до 688 Мбит/с в диапазоне 2,4 ГГц и до 2882 Мбит/с в диапазоне 5 ГГц с общей пиковой в 3570 Мбит/с. Конечно есть пару портов 2.5 Гбит/с, уже в принципе стандарт. Стоит 183$.

Вообщем, сегодня поймал второе откровение. GitHub CI вырвался вперёд — и не за счёт “мощи”, а именно за счёт удобства. Когда тебе нужно быстро поднять пайплайн, GitHub ощущается как «дружелюбный сосед»: открыл, выбрал нужные actions, связал пару шагов — и через 5-10 минут у тебя уже всё крутится и билдится. Без боли, без танцев, без «почему оно не нашло runner», или почему тут нужны сертификаты. В GitLab же каждый новый проект превращается в маленькое приключение. То синтаксис чуть иначе, то раннер что-то не так понял, то половину вечера проводишь в постоянных тестах-конфигурациях, чтобы добиться банального результата. И да — в корпоративной среде с хорошей культурой можно собрать такую же магию через импорты и готовые шаблоны. Но вот где сила сообщества — там и настоящая скорость. А GitHub здесь просто разрывает. #devops #ci #github #gitlab #инженерия

А я, кажется, влюбился в testcontainers. Короче… Я же знал, что они существуют. Видел где-то в статьях, слышал на конференциях, даже пару раз пролистывал доку. И каждый раз думал: «Ну да, прикольно, может потом». И вот этот «потом» наконец случился. Сейчас я как раз собираю для коллег гошный шаблон микросервиса — чтобы любой мог стартануть без боли, сразу писать бизнес-логику, а не копаться в инфраструктурной рутине. Ну и логично было заодно нормально пройтись по инструментам, которые давно висели в списке «надо потом попробовать». И тут я такой: ладно, давай посмотрим на эти ваши Testcontainers… Блин. Кайф. Типа прям честный кайф. Ты просто из кода поднимаешь Kafka, Postgres, MinIO — что угодно — и тестируешь как человек. Быстрая проверка CRUD? Пара секунд. Проверка продюсера/консьюмера — ещё пару секунд. И всё. Никакого «а давайте поднимем докер-композ», никакого «подождите, сейчас локально настрою». Стартуют почти как юниты с моками, только результат реальный, живой, как в проде. И вот это чувство… когда тесты, которые должны страдать минуту, вдруг проходят за 3 секунды — я такой: где вы были всю мою жизнь? Теперь жалею, что не внедрил это раньше в команде. Но зато в новый шаблон — войдут по-любому. Если кто-то до сих пор сомневается: не сомневайтесь. Это как впервые попробовать нормальный автотестовый фреймворк после ручных проверок в Postman — назад уже не хочется. P.S. Вот так например выглядет поднятие постгри:

pgContainer, err := postgresContainer.Run(ctx,
 "postgres:18",
 postgresContainer.WithDatabase("testdb"),
 postgresContainer.WithUsername("testuser"),
 postgresContainer.WithPassword("testpass"),
 testcontainers.WithWaitStrategy(
  wait.ForLog("database system is ready to accept connections").
   WithOccurrence(2).
   WithStartupTimeout(30*time.Second),
 ),
)
#golang #testcontainers #микросервисы #testing #qa #backend #go

Интервьювер сломал процесс собеса, попросил закрыть глаза и ответить на следующий вопрос :) #пятничныйюмор
Интервьювер сломал процесс собеса, попросил закрыть глаза и ответить на следующий вопрос :) #пятничныйюмор

Идет жаркая дискуссия (прочитайте комменты к первой статье), о том стоит ли доверять сертификатам Минцифры. Основная проблема, возможность MITM атаки, автор вполне доступно объяснил как быстро это можно сделать после установки сертом. Будучи молодым, я бы возбудился на такое, но в текущих условиях наверное без разницы - стоит да стоит. Если условному «товарищу майору», нужно будет посмотреть что я делаю на промтхабе - он всегда может постучаться в дверь. И скорей всего так и будет. Поэтому в целом можно спать спокойно. https://habr.com/ru/articles/968218/

⚡️Яндекс представил Промптхаб — площадку, где можно найти идеи для использования ИИ, добавлять свои предложения и пройти бесплатные курсы по нейросетям, рассказали в компании.
«Любой человек, даже не знакомый с нейросетями, сможет найти для себя что-то полезное и тут же воспользоваться идеей в чате с Алисой AI. Например, составить план рекламной кампании или попросить обустроить домашний офис — потребуется лишь указать в инструкции собственные параметры. Пользователи и компании могут добавлять на платформу свои промпты», говорится в сообщении.

Главное случайно не зайти на другой сайт.

Сегодня понедельник — самое время выдать свой вариант по странам-регионам-городам. Сначала, конечно, тянет сделать что-то такое: `/countries/{id}/regions/{id}/cities/{id}` Красиво же! Иерархично! Прямо видно структуру данных! Но это ощущение проходит примерно через пять минут — как только начинаешь думать о реальном использовании. Во-первых, все эти сущности живут сами по себе: у страны есть ID, у региона есть ID, у города есть ID. Зачем же закапывать их друг в друга, если каждый можно получить напрямую? Во-вторых, фильтрация потом превращается в цирк: если тебе нужны «все города страны с населением больше 100к и без метро», то в лесенке из URL это выглядит максимально странно. Поэтому финальный, рабочий и жизненный вариант у меня такой: 1. Каноничные ресурсы — плоские
GET /countries
GET /countries/{country_id}

GET /regions
GET /regions/{region_id}

GET /cities
GET /cities/{city_id}
Каждая сущность доступна сама по себе. Это убирает лишние проверки, упрощает клиентам жизнь и делает API устойчивым. 2. Отношения — через коллекции (чтобы можно было удобно «провалиться этажом ниже»)
GET /countries/{country_id}/regions
GET /regions/{region_id}/cities
GET /countries/{country_id}/cities
Это удобно для навигации — но не обязательно для CRUD. 3. Фильтры — через query, а не через URL-матрешку сделать что-то такое: `/countries/{id}/regions/{id}/cities/{id}` Красиво же! Иерархично! Прям Это гибче, чище и не ломается от каждого нового поля. Если бы это был реальный сервис, я бы ещё добавил сортировки, пагинацию и лёгкое кеширование — справочники всё-таки. Но в общем — вот так.

Завтра понедельник, а это повод размяться не много перед рабочей неделей. Представьте что вам надо сделать контракт, REST. Для трех сущностей - Страна, Регион, Город. Как бы вы сделали? Свой вариант завтра вечером опубликую.

Языку Go сегодня 16 лет. Из наверное самых классных функций последнего время - это новый сборщик Green Tea, который рока в бета. Причем не верится в такую дату честно говоря. Я помню когда смеялись что языку года 2-3, а требуют опыт 5 лет. Прям себя сильно олдом почувствовал. #go #golang

Докладчики-победители Analyst Days #21 🥇1 место — Аня Гурова 🥈2 место — Аня Казаченко 🥉3 место — Лев Немировский

Ехал на закрытие Analyst Days 21 с полной уверенностью, что хорошо выступил, но совсем не ожидал что мой доклад займет третье
Ехал на закрытие Analyst Days 21 с полной уверенностью, что хорошо выступил, но совсем не ожидал что мой доклад займет третье место. 🥉 6 Понадобилось три конференции и два года что бы повторить результат весны 2023 (AD 19) Это мотивируют выступать еще больше, ещё качественней (благо есть куда расти).

Сейчас слушаю доклад, как внедрили ИИ в подбор. Там прям классная и очень правдивая мысль - за последние 5 лет - вопросы которые можно найти в статье на Хабре “Топ 50 вопросов к системному аналитику», как задавали так и задают. Первый вопрос который задают - чем отличается POST от GET? #собесы

+5
Чуть спойлеров. В этот раз мне очень повезло с волонтером. Сделала 500 фото и видео. На прошлой конференции тоже волонтер меня фотал, но я его не смог найти что бы забрать материалы. Сейчас сразу свой телефон дал, что бы наверняка #ad21 #gitops

Сижу готовлюсь к выступлению, остался час. Буду рассказывать о GitOps, и как методология может помочь аналитикам и командам.
Сижу готовлюсь к выступлению, остался час. Буду рассказывать о GitOps, и как методология может помочь аналитикам и командам. #analyst days #ad21

Вышла GPT5.1. Как всегда быстрее, лучше, умнее. Я пока сильно разницы не заметил, кроме скорости. Так же появилась костомизация «стиля» ответа. #openai #chatgpt #gpt5.1

Тут балуюсь с оптимизацией сборки Next.js приложения, при сборке docker образа, отжирается 50 гигов. Самое приложение, меньше
Тут балуюсь с оптимизацией сборки Next.js приложения, при сборке docker образа, отжирается 50 гигов. Самое приложение, меньше гига. Люблю фронтенд. После оптимизации удалось добавиться увелечение только на 6 гигабайт, после окочания джобы + 1 гиг на кэш. #cicd #nexjs #reacr

Мне как спикеру прошлого Highload, был доступен один билет на любую конференцию Онтико, в течение года. Очно не смог, поэтому
+3
Мне как спикеру прошлого Highload, был доступен один билет на любую конференцию Онтико, в течение года. Очно не смог, поэтому взял онлайн на прошедший Highload в Москве. Начал смотрел, посмотрел первый и он прямо в сердечко - «Деньги или скорость? Экономика выбора: Python vs Java vs Go при разных RPS». Спикер на деньгах разложил - что и сколько стоит и как выбирать язык для проекта (не путать с продуктом, для него подсчет будет сильно сложнее).

Всех с пятницей и рабочей субботой :) #пятничныйюмор
Всех с пятницей и рабочей субботой :) #пятничныйюмор