Обновить
163.41
Тензор
Разработчик системы Saby
Сначала показывать

PostgreSQL Antipatterns: валим «слона» — highload на ровном месте

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

Сегодняшняя тема посвящена нелегким взаимоотношениям клиентского приложения и сервера PostgreSQL: как на ровном месте, неудачной архитектурой приложения, можно обеспечить себе хронические проблемы производительности.

Рассмотрим классические ситуации, когда разработчики начинают жаловаться на производительность БД - а виновата-то и не она!

Читать далее

PostgreSQL Antipatterns: устраняем вложенные интервалы

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

Недавно попался на глаза запрос, которым хотели отобрать в таблице (очевидно, для последующего удаления) все id записей интервалов, которые полностью перекрыты каким-то другим интервалом того же owner'а.

Но self-JOIN показал себя не лучшим образом...

Как сделать эффективнее?

Знакомство с Docker или зачем это всё нужно

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

Всем привет. Меня зовут Алексей, вместе с командой я занимаюсь разработкой прикладных решений в системе Saby компании Тензор. В своей статье хочу поговорить про Docker.

При знакомстве с любой технологией важно понимать, зачем инвестировать своё время в её изучение. Для этого нужно иметь хотя бы общее представление о предметной теме. Сейчас, когда Docker используется повсеместно, многие разработчики (особенно молодые) относятся к нему, как к данности, при этом не до конца понимая, зачем, собственно, он используется и какие проблемы решает. На Хабре есть ознакомительные статьи про Docker, однако они не в полной мере (вернее, не в той мере, в которой хотелось бы мне :) ) освещают данный вопрос. Так возникла идея написания этой статьи. При ее подготовке были использованы: информация из книги Docker In Action, данные с профильных сайтов, собственные разработки для выступления на внутрикорпоративном митапе Тензора, материалы с IT-форумов и, конечно, личный опыт. Если вы опытный разработчик/администратор/devops, и уже давно используете Docker, вы вряд ли узнаете что-то новое из статьи и можете смело проходить мимо. Если же ваш профессиональный путь только начинается, надеюсь, что этот материал поможет вам в освоении данной технологии.

Читать далее

SQL HowTo: Black and White (Puzzle Hunt 2010)

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

Некоторые головоломки можно решать на SQL just for fun, а часть получается выразить на этом декларативном языке даже эффективнее других, императивных.

Попробовать сделать более наглядное решение, а заодно познакомить с некоторыми нетривиальными возможностями PostgreSQL меня натолкнул пост о решении на Python задачи Black and White.

Читать далее

SQL HowTo: загадка Эйнштейна, или снова Джиндош

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.3K

Пару дней назад был опубликован пост с решением на MySQL загадки Джиндоша (она же загадка Эйнштейна).

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

Поэтому я попробовал решить эту задачу "в общем виде", используя возможности PostgreSQL, и вот что из этого получилось.

Читать далее

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.7K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В первой части лекции мы узнали, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. В этой - разберем, что такое Seq ScanBitmap Heap ScanIndex Scan и почему Index Only Scan бывает нехорош.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1часть 2) и слайды.

Читать далее

Игры с джунами

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

Привет, Хабр! Меня зовут Ирина Москалева. Работаю в компании около 12 лет, в области HR. Когда-то подбирала персонал сама, но уже несколько лет руковожу своей командой и разрабатываю стратегию в этой сфере подбора и управления персоналом.

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

Читать далее

Анатомия техдолга. Излечим ли пациент?

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

Привет, Хабр! Меня зовут Евгений Старков, и я, как и вы, часто сталкиваюсь с техдолгом.

Пришло время рассказать, как я с ним справляюсь! Проблема не нова и встречается в любой компании, связанной с разработкой. Мне, по большей части, техдолг достался «в наследство». Первой задачей в Тензоре было разделение и рефакторинг большой части кодовой базы своей группы. Там попадались и суперклассы, и файлы с количеством строк, перевалившем далеко за 1000, и именование переменных по типу a, b, c.

Читать далее

Feature management в Тензоре

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели731

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

Меня зовут Данил Садриев, и я работаю руководителем одного из платформенных направлений в Тензоре. Наш продукт — Управление Облаком, аналог административных консолей AWS или Azure, предназначен для сотрудников компании. Управление Облаком предоставляет большое число сервисов: от запуска контейнера до паркинга доменов. А также: хранит логи и статистику, управляет резервным копированием, в общем, все, что нужно для полноценной разработки продукта. В этой статье я расскажу о сервисе управления функционалами. Возможно, это пригодится тем, кто готовится к секции интервью по system design, а также будет интересно начинающим product owner»ам, и архитекторам в части метода организации работы с данными.

Читать далее

Использование Annotated в Python

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Всем привет. Ранее мы с вами разбирали универсальные типы в python. Продолжая тему подсказок типов, в данной статье, я расскажу о примерах использования Annotated из модуля typing. Если вы слышите о Annotated в первый раз, то для лучшего понимания, стоит ознакомится с PEP 593 – Flexible function and variable annotations.

Данный инструмент очень полезен, если вы разрабатываете различные фреймворки или библиотеки. И даже если вы занимаетесь написанием прикладного кода, то не будет лишним знать и понимать, что происходит "под капотом" фреймворков и библиотек использующих Annotated.

Читать далее

Бэкэнд для начинающих или типовые ошибки бэкэндера

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

Всем привет! Я Олег, fullstack‑разработчик в компании Тензор, тимлид небольшой команды.

Одна из моих обязанностей в роли тимлида это code review. За годы работы я видел многое и выделил для себя типовые ошибки, с которыми сталкиваются начинающие backend‑разработчики. Сегодня хочу рассказать о некоторых из них.

Читать далее

Причины компьютерных сбоев, о которых вы даже не думали

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

Привет-привет! С вами снова Оля — программист Учебного центра компании «Тензор»... и радиофизик. До этого я рассказывала вам о рабочих кейсах, а сегодня поведаю о программистско-астрофизическом эксперименте.

Бывало ли на вашем пользовательском веку такое, что компьютер внезапно завис или не смог прогрузить страницу? Грешили ли в этот момент на проклятую технику? А ведь причина может быть в другом — космическое излучение могло быть источником ваших бед! В этой статье разберем уязвимость с самого известного фреймворка cwe.mitre.org.

Читать далее

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели54K

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

Читать далее

Почта без хлопот: автоматизация отправки писем с помощью Python

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели24K

Привет-привет! С вами снова Оля — программист Учебного центра компании «Тензор». Ранее я писала здесь о разработке ботов в Telegram, но в моем отделе не скупятся на творческие задачи — так что и эта статья вряд ли будет последней.

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

Читать далее

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

Трансляция видео посредством P2P-сетей

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7K

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

Я, как разработчик сервиса вебинаров, постараюсь в этой статье помочь разобраться с этими проблемами, по средствам P2P-сетей.

Читать далее

Универсальные типы в python

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

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

Меня зовут Саша, и в своей работе часто сталкиваюсь с ситуациями, когда нужно создавать классы, работающие с различными типами, и при этом избегать дублирование кода, а также получать актуальные подсказки от type checker'а.

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

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

Читать далее

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели83K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В этой лекции мы узнаем, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. Разберем, что такое Seq Scan, Bitmap Heap Scan, Index Scan и почему Index Only Scan бывает нехорош, чем отличается Materialize от Memoize, а Gather Merge от "просто" Gather.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1, часть 2) и слайды.

Читать далее

Плагин для анализа планов PostgreSQL в Sublime Text, и его разработка

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.6K

Завершаем серию статей о плагинах для explain.tensor.ru -  сервиса визуализации PostgreSQL-планов. На этот раз речь пойдет о плагине для Sublime Text.

Читать далее

Плагин для анализа планов PostgreSQL в VS Code, и его разработка

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

Анализ планов и форматирование запросов PostgreSQL удобно выполнять в VS Code, используя explain.tensor.ru и плагин, о котором пойдет речь ниже.

Читать далее

Как подготовиться к публичному выступлению: работа с голосом

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

Чем больше ты становишься экспертом, тем чаще HR видят в тебе не просто коллегу… а спикера на конференциях и митапах. Ну потому что нельзя скрывать такое сокровище! 

Одно дело — подготовить доклад, другое — с ним выступить (тяжкий вздох). Словить атаческую панику за 5 минут до триумфального появления перед публикой может даже самый титулованный специалист. И это ок. 

Чтобы не переживать и с удовольствием делиться опытом с аудиторией, нужно просто настроиться на выступление: привести в порядок голос и нервы. 

Накануне Митапа в Уфе 28 марта собрали в статье лайфхаки, которые помогут чувствовать себя перед аудиторией комфортнее, а звучать — увереннее.

Читать далее

Информация

Сайт
saby.ru
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия