Бодрый кодер – Telegram
Бодрый кодер
450 subscribers
249 photos
24 videos
4 files
164 links
Меня зовут Лев, я руководитель направления в ПСБ. Это мой личный блог о DevOps, разработке, системном анализе, AI и управлении IT-командами. Делюсь своими мыслями, инсайтами, полезными инструментами и тем, что меня вдохновляет.

Автор: @nemirlev
Download Telegram
3 проверенных стека для метрик:

Классика: Prometheus + Grafana
Простота, огромное комьюнити
Масштабируется до средних нагрузок
Идеально для начала и небольших систем

Длинное хранение: VictoriaMetrics + Grafana
Хранит годы данных, совместим с Prometheus
Сложнее в настройке
Отлично для растущих проектов

Распределенный: Thanos + Prometheus + Grafana
Горизонтальное масштабирование
Сложная инфраструктура
Для больших распределенных систем

#monitoring #devops #metrics"
👍4
Одного PKCE для SPA уже мало. Почему? Участились случаи token theft даже с правильно настроенным OAuth 2.0.

Варианты улучшений:

Browser fingerprinting (защита от token replay)
Rate limiting по комбинации IP + fingerprint
Anomaly detection по паттернам запросов

Важно: это не серебряная пуля, а набор инструментов. Выбирайте исходя из модели угроз. Не сложно реализовать - browser fingerprinting и rate limiting по device ID, но даст достаточный уровень безопасности.

#security #oauth #api"
👍1
😎 Собеседование:
- Знаешь паттерны?
- Да, синглтон!
- А ещё?
- Ну... два синглтона?

#пятничныйюмор
😎1
Вчера OpenAI выпустила Operator - AI-ассистента с собственным браузером. Он умеет самостоятельно работать с веб-интерфейсами: заполнять формы, делать заказы и искать информацию.

Работает на новой модели Computer-Using Agent (CUA), которая использует GPT-4 для взаимодействия с графическим интерфейсом - умеет кликать, печатать и скроллить как обычный пользователь.

Пока доступен только Pro-пользователям в США.

#AI #OpenAI #ChatGPT #Operator #технологии
🤔2👍1
В прошлом году писал про рейтинг на Хабре. До сих пор не могу понять эту математику – простые статьи часто получают высокие оценки, а технически сложные материалы не особо заходят. И каждый раз волнуюсь, публикуя новый пост.

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

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

#мотивация #хабр #комьюнити #разработка #контент
5🔥3👏1
Такого ажиотажа в AI-сфере не было со времен запуска ChatGPT 3.5! DeepSeek наделал столько шума, что после их заявления о затратах всего в 6 млн$ (при сопоставимой с o1 мощности) акции Nvidia упали почти на 20%. Досталось и другим компаниям, связанным с чипами.

Конечно, я тоже не удержался от тестов. Впечатления позитивные - по качеству почти не отличается от o1, но есть два больших плюса: не нужен VPN и есть нативное приложение для телефона.

А для разработчиков вообще праздник - можно развернуть локально или использовать API всего за $0.14 (против $2.50 за o1). Хотя вроде OpenAI на днях снизили цены, раньше было около $7.5 (я почему-то помню такую цену, но могу ошибится).

С техническими задачами справляется на уровне конкурентов. Правда, если говорить о качестве текста - Sonnet всё ещё остается моим фаворитом 😉

#AI #DeepSeek #OpenAI #нейросети #технологии
👍81🥰1
Не зря я себе купил M4 Max с 128 ГБ оперативки — как будто чувствовал выход мощной нейросети. В теории мне должно хватить для дообучения модели на 70B параметров. Бенчмарки впечатляют, и теперь хочу сам сравнить локальную версию.

UPD: Отбой. Пробовать всё же буду, но, как выяснилось, бенчмарк выше R1 — не настоящий. Модели 70B и 7-8B — это файнтюн версии Qwen или Llama, дообученные на выходных данных оригинальной R1.

#AI #DeepSeek #OpenAI #нейросети #технологии
🔥1😢1
Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX.

Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn.

#AI #Qwen #Alibaba #нейросети #технологии
🔥1
Бодрый кодер pinned «Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX. Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn. #AI #Qwen #Alibaba #нейросети #технологии»
Бодрый кодер pinned «Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX. Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn. #AI #Qwen #Alibaba #нейросети #технологии»
Привет! Если вы думали над тем, чтобы заменить bash на Go для CI/CD, получить мощные инструменты тестирования, отладки и читаемый код, посмотрите на Dagger. Это инструмент, который позволяет писать CI/CD-пайплайны на Go, TypeScript или Python — как обычный код. Например сборка приложения и публикация в registry:


package main

import (
"context"
"dagger.io/dagger"
)

func main() {
ctx := context.Background()
client, err := dagger.Connect(ctx)
if err != nil {
panic(err)
}
defer client.Close()

// Собираем Docker-образ
image := client.Container().Build(client.Host().Directory("."))

// Пушим в registry
_, err = image.Publish(ctx, "my-registry/my-app:latest")
if err != nil {
panic(err)
}
}


Из минусов, кода становится больше:


#!/bin/bash
echo "Building app..."
docker build -t my-app .
echo "Pushing to registry..."
docker tag my-app my-registry/my-app:latest
docker push my-registry/my-app:latest


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

#DevOps #CI_CD #Dagger #Automation #GoLang
This media is not supported in your browser
VIEW IN TELEGRAM
В начале недели прям залп новинок для тех, кто работает с информацией:

OpenAI представили Deep Research - агента, который сам проводит исследования. Например, просишь его проанализировать IT-тренды за 5 лет, и он самостоятельно изучает интернет, формируя серьезный аналитический отчет со всеми ссылками на источники. Работает от 5 до 30 минут, доступно для Pro-аккаунтов.

Появился Typeset.io - специализированный AI для работы с научными статьями. Его фишка в том, что он опирается только на проверенные научные источники.

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

#AI #OpenAI #DeepResearch #исследования #технологии #наука
🔥5👍2
Поговорим про распил монолита. На схеме представлены 4 ключевых паттерна, которые помогут упростить переход:

Strangler Fig Pattern - позволяет постепенно извлекать функционал из монолита в отдельные сервисы, не нарушая работу системы. Как лиана, новые сервисы обвивают старый монолит, постепенно забирая его функционал.

Parallel Run Pattern - позволяет запускать старую и новую реализацию параллельно, сравнивая результаты. Это снижает риски при миграции, так как мы можем быстро откатиться на старую версию.

Decorating Collaborator Pattern - позволяет добавлять новую функциональность через прокси-слой, не меняя существующий монолит.

Change Data Capture (CDC) - позволяет отслеживать изменения в базе данных и синхронизировать данные между старой и новой системой.

Кстати, даже если вы не планируете разделять монолит, очень рекомендую внедрить API Gateway. Это даст вам:

* Централизованный контроль над всеми API эндпоинтами
* Принудительное документирование контрактов
* Простое подключение мониторинга и метрик
* Полную трассировку запросов через OpenTelemetry

#архитектура #микросервисы #монолит #паттерны #разработка
👍41
В свободное время начал изучать Rust и сразу делаю параллели с Go.

Простой Hello World telegram-бот на Go:


package main

import (
"log"
"os"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)

func main() {
bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_APITOKEN"))
if err != nil {
log.Panic(err)
}

u := tgbotapi.NewUpdate(0)
u.Timeout = 60

updates := bot.GetUpdatesChan(u)

for update := range updates {
if update.Message == nil {
continue
}

msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Hello World!")
bot.Send(msg)
}
}


А вот на Rust:


use teloxide::{prelude::*, utils::command::BotCommands};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
pretty_env_logger::init();
log::info!("Starting bot...");

let bot = Bot::from_env();

teloxide::repl(bot, |bot: Bot, msg: Message| async move {
bot.send_message(msg.chat.id, "Hello World!").await?;
Ok(())
})
.await;

Ok(())
}


Пока не могу найти явные приемущества Rust для веб-сервисов. Может кто-то из практикующих поделится, где реально выстреливает?

#Rust #Golang #разработка #изучаюязыки
👍3
Целых два дня без постов, поэтому захожу сразу с темы для дискуссии - метрики в разработке. Тема интересная тем, что бизнес их очень любит, а исполнители часто стараются избегать, считая бесполезной бюрократией. Выскажу свое мнение, а вы поделитесь своим.
Я считаю, что метрики очень важны, но к ним нужно относиться не как к инструменту, с помощью которого можно карать и миловать, а как к индикаторам, благодаря которым можно принимать решения проактивно, а не постфактум. Я пришел к делению на два блока:

Бизнес метрики - это здоровье продукта, основное. Конечно, всё зависит от специфики проекта, но за основу можно взять Retention Rate (сколько пользователей возвращаются через X дней), NPS, активных пользователей (DAU/WAU/MAU), конверсию в целевые действия, среднее время до целевого действия, количество багов на пользователя и, конечно, SLA/SLO/SLI.

Метрики разработки (не конкретных разработчиков, а всех ролей, которые участвуют!) - тут важны Lead Time и Cycle Time, частота релизов, количество ошибок после релиза, частота неудачных деплоев, MTTR, время код-ревью и эффективность тестового покрытия. Можно добавить соотношение затраченного времени к планируемому,

А как вы относитесь к метрикам? Какие считаете действительно полезными?

#разработка #метрики #management #teamlead #продакт
🤔3❤‍🔥1👍1
Мне все больше нравится работать с легковесной альтернативой Elastic - Vector + Loki + Grafana 📊
Легче, дешевле, и работает с PromQL, который вы уже знаете по метрикам!
#мониторинг #логи #vector #loki #grafana #devops
Вышел Go 1.24! Что нового? 🚀
Решил поделиться интересными обновлениями из свежего релиза Go 1.24. Опубликовали 11 февраля, и там есть действительно полезные штуки:

Наконец-то добавили поддержку обобщённых псевдонимов типов (generic type alias). Теперь при определении псевдонима можно указывать параметры типа.

Оптимизировали runtime - нагрузка на CPU снизилась на 2-3%. Добавили новую реализацию map на основе Swiss Table, улучшили работу с памятью для мелких объектов и обновили mutex.

Для Go-модулей появился механизм отслеживания исполняемых зависимостей через директиву tool (например, линтеров). Теперь можно добавлять их через go get -tool.

В стандартной библиотеке появились криптоалгоритмы из FIPS 140-3 и пакеты для квантово-устойчивого шифрования (ML-KEM-768 и ML-KEM-1024).

Улучшили поддержку WebAssembly - можно собирать Go-приложения как библиотеки или WASI-обработчики.

#golang #релиз #разработка #программирование
🔥41