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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

SQL HowTo: один индекс на два диапазона

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

В прошлой статье я показал, как условие с парой однотипных неравенств, плохо поддающееся индексации с помощью btree, можно переделать на эффективно gist-индексируемое в PostgreSQL условие относительно диапазонных типов, а наш сервис анализа планов запросов explain.tensor.ru подскажет, как именно это сделать.

Но что делать, если неравенств у нас не два, а целых четыре, да еще и с разными типами участвующих полей? Например, для целей бизнеса это может быть задачей вроде "найди мне все продажи за декабрь на сумму 10-20K", что на SQL будет выглядеть примерно так:

dt >= '2023-12-01'::date AND dt <= '2023-12-31'::date AND

sum >= 10000::numeric AND sum <= 20000::numeric

Читать далее

Ограничения в телеграм-бот (Bot API), о которых никто не расскажет

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

Привет! Меня зовут Оля, я программист учебного центра компании «Тензор».

В декабре 23-го мне поступила творческая задача разработать телеграм-бот для проведения новогоднего марафона-тренинга по личностному росту.

В этой статье расскажу о проблеме, с которой столкнулась при разработке телеграм-бота. Разберем ошибку 429 (Too Many Requests) и лимиты на доступ к API.

Читать далее

Бьемся с индексацией парных неравенств в PostgreSQL

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

Я уже не раз писал, что условия с несколькими неравенствами (<, <=, >=, >) обычно плохо подходят для индексирования "классическим" btree, вызывают "тормоза", и необходимо придумывать различные нетривиальные подходы в PostgreSQL, чтобы добиться хорошей производительности подобного запроса.

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

Читать далее

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

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

Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, в дополнение к плагину Jetbrains мы создали еще один - с возможностью форматировать запросы и анализировать планы в Eclipse IDE и DBeaver.

Читать далее

Обзор по LLM

Время на прочтение10 мин
Охват и читатели20K

В прошлом году(2023) в мире больших языковых моделей(LLM) произошло много нового и нитересного. В новостях появились фразы о гонке искусственных интеллектов, а многие ведущие IT компании включились в эту гонку. Рассмотрим как все начиналось, кто сейчас занимает лидирующие позиции в гонке и когда роботы захватят мир.

Читать далее

Плагин для анализа планов PostgreSQL в IDE JetBrains и его разработка

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

Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, мы создали плагин "Explain PostgreSQL" для всех IDE от JetBrains, теперь есть возможность форматировать запросы и анализировать планы непосредственно в IDE.

Как использовать плагин и детали о его разработке читайте ниже.

Читать далее

Любимая задачка на знание React

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

Всем привет! Меня зовут Олег и я fullstack-программист в компании Тензор. Опыт в разработке, без малого, 20 лет (как-то раз батя спаял на кухне ZX Spectrum и все заверте..., сам не понял как так вышло). В данный момент являюсь тимлидом собственной команды разработчиков, которая периодически нуждается в пополнении толковыми программистами.

Как и многие руководители, я активно принимаю участие в подборе сотрудников для себя и помогаю на собесах коллегам соседних отделов.

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

Если вы тоже в вечном поиске классных фронтендеров или сами часто проходите собесы - велком в эту статью :)

Итак, задачка...

Курс «PostgreSQL для начинающих»: #3 — Сложные SELECT

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

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

В этой лекции углубимся в расширенные возможности команды SELECT : как можно "сложить" и "вычесть" выборки (UNION/INTERSECT/EXCEPT), или запомнить и использовать в рекурсивных запросах (CTE), что дают оконные функции (WINDOW) и соединения (JOIN).

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

Читать далее

PostgreSQL в «Тензоре» — публикации за год (#4)

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

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

Если не видели дайджест за прошлый год — время наверстать упущенное!

Читать далее

SQL HowTo: итоги по строкам и столбцам «в одно действие»

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

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

Читать далее

Курс «PostgreSQL для начинающих»: #2 — Простые SELECT

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

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

Сегодня поговорим о самых простых, но важных, возможностях команды SELECT, наиболее часто используемой при работе с базами данных - формировании выборок (VALUES), их ограничении (LIMIT/OFFSET/FETCH), фильтрации (WHERE/HAVING), сортировке (ORDER BY), уникализации (DISTINCT) и группировке (GROUP BY).

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

Читать далее

Курс «PostgreSQL для начинающих»: #1 — Основы SQL

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

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

В программе: рассказ об основах SQL, возможностях простых и сложных SELECT, анализ производительности запросов, разбор [не]эффективного применения индексов и особенностей работы транзакций и блокировок в этой СУБД.

Курс не претендует на лавры "войти в айти", поэтому подразумевает наличие у слушателя опыта программирования или работы с другими СУБД, и, главное, желания самостоятельно изучать тему работы с PostgreSQL глубже.

Для тех, кому комфортнее смотреть и слушать, а не читать - доступна видеозапись и слайды.

Читать далее

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

SQL HowTo: TOP-N на субинтервалах

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

Периодически сталкиваюсь с однотипными задачами вида "показать TOP-N позиций на каждом из вложенных интервалов некоторого периода".

Это может быть "5 лучших по успеваемости студентов в каждом семестре за последний учебный год", или "помесячная динамика позиции 10 наиболее продающихся товаров", или, как у нас в сервисе визуализации PostgreSQL-планов explain.tensor.ru, "3 наиболее активных страны за каждый день":

Читать далее

Мама, я в телике

Время на прочтение5 мин
Охват и читатели5.2K

Каждый год мы с друзьями  коллегами ходим в баню снимаемся в новогодних клипах. А все почему? Потому что в компании Тензор, где я работаю, новый год празднуют минимум дважды: офлайн и онлайн. 

Если у вас много удаленных сотрудников, обширная география филиалов или просто есть желание растормошить интровертов - велком в статью-проводник по организации онлайн-корпоратива :)

Тык на кнопочку

Как мы созвонились компанией в 10 тысяч человек

Время на прочтение12 мин
Охват и читатели4K

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

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

Читать далее

Импортозамещение сканеров WEB уязвимостей: обзор актуальных DAST решений

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

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

Поговорим о проблеме выбора DAST, который бы смог удовлетворить потребности регулярного поиска уязвимостей в web-инфраструктуре компании. Опытные пентестеры, специализирующиеся на web-приложениях, наверняка возразят: какой тут может быть выбор? Burp Suite PRO наше все! И будут правы, но на прошлом PHD мне в руки попала Позитивная карта импортозамещения (https://www.ptsecurity.com/upload/corporate/ru-ru/analytics/positive-research-2023-poster.pdf), где Positive Technologies предложили заместить иностранные DAST: Burp Suite Pro, Acunetix, Inviciti — своим решением PT BlackBox. Но чтобы коммерческим продуктам не быть едиными, заодно добавим в сравнение продукты open source.

Разберемся, импортозамещаться или приобретать через серые схемы иностранный Burp Suite Pro. Или вообще оставаться на бесплатном open source.

Читать далее

PostgreSQL Antipatterns: ходим по JSON-граблям

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

Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:

множество чтений из CTE (хоть и единственной записи, но все же);

извлечение по каждому ключу текста с раскастовкой в jsonb;

извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;

"ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.

А как - правильно?

Читать далее

ABR для живых трансляций

Время на прочтение9 мин
Охват и читатели2.1K

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

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

Читать далее

Информация

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