Как стать автором
Обновить
547.84
OTUS
Цифровые навыки от ведущих экспертов
Сначала показывать

Не доверяйте groupby().first()

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров742

Привет, Хабр!

В этой статье рассмотрим, почему groupby().first() в pandas — не такая уж безопасная и очевидная штука, как может показаться. Особенно когда нужно достать первую строку группы в точности, как она была в датафрейме — с NaN, с порядком, без сюрпризов.

Но для начала рассмотрим отличия first от других подобных методов.

Читать далее

Как повысить эффективность сотрудников с помощью технологии разговорного интеллекта

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров343

Разговорный интеллект (Conversational Intelligence) — это больше, чем просто мониторинг звонков. Эта технология на основе ИИ и NLP позволяет компаниям по-новому взглянуть на развитие сотрудников, контроль качества и эффективность бизнес-процессов. В статье подробно разбирается, как анализ всех взаимодействий с клиентами в реальном времени помогает выявлять пробелы в навыках, улучшать обучение, повышать вовлечённость и снижать издержки, а также как внедрять такие решения последовательно и с максимальной отдачей.

Читать далее

1С УПП vs 1С ERP: переходить или модернизировать? Можем ли продолжать работу без смены платформы?

Время на прочтение8 мин
Количество просмотров2.2K

Можно ли продолжать работать на 1С УПП в 2025 году, или переход на 1С ERP неизбежен? В статье разберём ключевые аргументы обеих сторон, оценим технические и организационные риски, реальные затраты на миграцию и сценарии, при которых модернизация окажется разумной альтернативой полной замене платформы. Без эмоций — только факты, цифры и практика.

Читать далее

Чек-лист для Kubernetes в продакшене: лучшие практики для SRE

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.8K

Управление Kubernetes в продакшене требует внимательности и соблюдения лучших инженерных практик, особенно в масштабных средах. В этой статье мы собрали основные принципы эксплуатации, которые помогут избежать распространённых проблем, повысить стабильность и минимизировать сложность работы с Kubernetes. Вы узнаете о важнейших аспектах, таких как управление ресурсами, настройка высокой доступности, мониторинг, автоматизация через GitOps и оптимизация затрат — всё это позволяет эффективно управлять инфраструктурой, снижая риски и улучшая производительность.

Читать далее

Как работает Cargo

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

Привет, Хабр!

На дворе 2025, и у каждого языка свой подход к сборке, зависимостям и публикации. В Rust за это отвечает Cargo — инструмент, который берёт на себя всё: от менеджмента зависимостей до тестов, бенчмарков и выкладки на crates.io.

И вот это мы и рассмотрим в статье: как устроен Cargo изнутри, зачем нужен Cargo.toml, как подключать зависимости, куда падают артефакты сборки, что делает cargo check, как запускать и бенчмаркать, и как наконец создать свой крейт на crates.io.

Читать далее

Истории

Выявляем повторную передачу пакетов в сети

Время на прочтение6 мин
Количество просмотров3K

Медленная работа сети — проблема, с которой сталкиваются многие специалисты. В отличие от очевидных обрывов связи, «тормоза» зачастую трудно диагностировать, и найти их причину может быть не так просто. В этой статье мы разберем механизмы, лежащие в основе одного из таких случаев — повторной передачи пакетов в TCP-сети. Вы узнаете, как работает этот процесс, какие инструменты можно использовать для диагностики, а также как на практике выявлять и устранять проблемы с производительностью сети, связанные с потерей пакетов.

Читать далее

Nginx rewrite: когда нужен break, а когда last

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.5K

Привет, Хабр!

Сегодня рассмотрим, что на самом деле происходит при rewrite в Nginx. Как работает связка rewrite ... break, чем она отличается от rewrite ... last, и как одно неловкое движение может превратить весь конфиг в тыкву.

Читать далее

Линус Торвальдс: Критика C++ — Комплексный анализ

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров15K

Линус Торвальдс, создатель (и великодушный диктатор) Linux, всегда с особой критикой относился к C++, объясняя почему он отвергает его в разработке ядра Linux. Но он не просто резко высказывается против использования C++, а приводит ряд аргументов, которые мы с вами сегодня и рассмотрим.

Читать далее

Почему COUNT(*) быстрее, чем COUNT(col) — и когда это не так

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров15K

Привет, Хабр!

Сегодня поговорим про одну из тех тем, что вроде бы тривиальна, но до последней капли грязи тащит за собой внушительный пласт вопросов. Речь пойдёт про COUNT(*) и COUNT(col) в PostgreSQL.

Читать далее

Коротко о DNS в NGINX

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5K

Привет, Хабр!

Сегодня рассмотрим, как NGINX работает с DNS и почему proxy_pass не резолвит домены на ходу.

Читать далее

JDBC: Как Java научилась дружить с Базами Данных

Время на прочтение4 мин
Количество просмотров6K

Представьте, что вы — гид в огромном городе под названием «Базы Данных». Ваша задача — помочь Java-приложениям найти нужную информацию, обновить данные или создать новые таблицы. Но как «разговаривать» с разными СУБД, если у каждой свой язык? Здесь на помощь приходит JDBC — универсальный переводчик, который знает все диалекты.  

Читать далее

Почему @patch из unittest.mock ломает вам тесты, если не указать autospec=True

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.2K

Привет, Хабр!

Сегодня разберёмся, почему без autospec=True ваш безобидный @patch из unittest.mock может превратить зелёный репорт в мину замедленного действия.

Смысл patch() прост: отрезаем внешний мир, подсовываем фейковый объект и гоняем логику изолированно. Но если не включить autospec, мок превращается в пластилин — к нему прилипает любой метод, любые аргументы, и тесты радостно хлопают ладоши, даже когда в коде опечатка или нарушена сигнатура.

Читать далее

F(), Func() и никаких циклов: как Django думает в SQL

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.3K

Привет, Хабр!

Сегодня рассмотрим, как использовать F()-экспрессии и Func()-обёртки в Django для того, чтобы выполнять арифметику, условия и преобразования не в Python, а на стороне базы данных. Один SQL-запрос может заменить десятки строк кода не теряя в качестве кода.

Читать далее

Аутентификация на основе cookies с помощью Laravel Sanctum

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров1.9K

Привет, Хабр!

Представляю вашему вниманию подробное пошаговое руководство по настройке аутентификации на основе cookies с помощью Laravel Sanctum. В процессе мы объясним логику каждого шага и покажем, как настроить Postman. Кроме того, мы рассмотрим наиболее распространенные проблемы, связанные с CORS.

Читать далее

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Руководство по принципам SOLID для технических лидеров

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.2K

Если вы считаете, что принципы SOLID — это что-то из учебника по ООП и к вашему проекту они не имеют отношения, у меня для вас плохие новости. Так думали и мы, пока один «божественный» класс не положил прод на сутки. А всё потому, что его писали с мыслью «зачем разбивать, всё и так работает».

В этой статье — без академической воды: как SOLID спасает архитектуру, ускоряет команду и помогает не утонуть в легаси. С примерами, с типичными фейлами и с тем, что действительно работает в продакшене.

Читать далее

ref, out, in: как понять, кто из них тебе нужен

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.9K

Привет, Хабр!

Наверняка вы сталкивались с out, ref и in, но вот в чём штука — хотя выглядят они похоже, под капотом у них совершенно разные намерения. Один любит брать всё на себя, другой ждёт готового, третий — как библиотекарь: знает много, но не вмешивается. Сегодня разберёмся, когда и кого стоит звать в метод

Читать далее

Почему == и .Equals() — не одно и то же (и как это вас подставит)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров16K

Привет, Хабр! Когда речь заходит о сравнении объектов, все почему-то решают, что это элементарный вопрос: ну есть же == и есть .Equals(), в чём проблема? На практике — проблема порой вырастает в целое шапито. Сегодня поговорим о весьма противоречивой парочке. Почему иногда, написав var a = b; if (a == b) { ... }, мы проверяем одно, а вызвав a.Equals(b) — совершенно другое? И главное: как это может довольно жестоко подставить нас в реальном коде, когда «ой, ну мы же не ожидали, что кто‑то переопределит оператор == так хитро».

Читать далее

Быстрый старт работы со Смарт-процессами в коробке Битрикс24 для разработчика. Часть 3. Обработчики события

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров436

Привет, Хабр! Мы продолжаем цикл статей по работе с пока еще малознакомым многим битрикс-разработчикам инструментом оперирования данными с CRM Битрикс24 через абстрактные фабрики, как с помощью обработчиков событий можно встроить личную логику в работу с элементами CRM. В первой статье мы рассмотрели базовые операции с элементами сущностей Смарт-процессов — создание, изменение, удаление. Во второй статье рассмотрели получение данных об элементе смарт-процесса, его связях с другими элементами.

Читать далее

Практическое руководство по выбору брокера сообщений

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров2.9K

В мире распределённых систем выбор брокера сообщений — это не просто вопрос технологии, а стратегическое решение, от которого зависит надёжность, масштабируемость и устойчивость всей архитектуры. Несмотря на популярность решений вроде Apache Kafka и Amazon SQS, их выбор часто бывает продиктован модой или привычкой, а не реальными потребностями приложения. 

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

Читать далее

100 % cover, 0 % спокойствия

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.4K

Привет, Хабр!

Сегодня я хочу поговорить о том, как мы все иногда очарованы показателями тестового покрытия в Go — и как же часто эти проценты лукаво нам подмигивают. Казалось бы, влепили go test -cover, получили любимые цифры, приближающиеся к 100%, и можно выдохнуть. Но, увы, не всё так радужно, как хочется. На самом деле заветная сотка покрытия далеко не всегда означает, что ваш код действительно покрыт тестами.

Читать далее
1
23 ...

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS