Данная статья написана по материалам лекций психолога в МФТИ. Эти лекции показались мне очень полезными, поэтому я решил поделиться своим конспектом.
Пользователь
Как мы создавали и внедряли свою матрицу компетенций
Привет, Хабр!
Сегодня поговорим про матрицы компетенций и, как мы их внедряли в «Рексофт». Мы уже рассказывали про матрицу Android-программиста, и как мы вводили кросс-интервью при повышении грейда, а сегодня я расскажу, о том, как все начиналось и куда мы пришли. Итак, поехали!
PostgreSQL 16: Часть 5 или Коммитфест 2023-03
Вместе с окончанием мартовского коммитфеста, закончился прием изменений в 16-ю версию. Пришла пора посмотреть, что в нем было нового и интересного.
Надеюсь, что представленный материал вместе с предыдущими статьями серии (2022-07, 2022-09, 2022-11, 2023-01) поможет сформировать представление о новинках PostgreSQL 16.
Postgres: графовая база данных, о которой вы не подозревали
PostgreSQL (Postgres) — это мощная реляционная база данных, способная хранить широкий спектр типов и структур данных. Когда нам нужно хранить графовые структуры данных, мы часто обращаемся к базам данных, позиционируемым как подходящее для этого решение, например, к Neo4J или Dgraph. Но не торопитесь! Хотя при работе с графовыми структурами данных о Postgres обычно не вспоминают, она идеально справляется с эффективным хранением графовых данных и запросами к ним.
Неожиданное влияние текстов среднего размера на производительность PostgreSQL
- Маленькие тексты. Имена и фамилии людей, заголовки страниц, имена пользователей, адреса электронной почты и прочее подобное. Обычно на размер таких полей накладываются определённые ограничения, довольно сильные. Возможно, это даже не поля типа
text
, а поля типаvarchar(n)
. - Большие тексты. Это, например, содержимое публикаций в блогах, тексты статей, HTML-код. Такие данные представляют собой большие фрагменты текста неограниченной длины, хранящиеся в базе данных.
- Тексты среднего размера. Это — описания, комментарии, отзывы о товарах, данные о трассировке стека и так далее. В сущности это — любые текстовые поля, размер которых находится между размерами «маленьких» и «больших» текстов. Обычно размер таких полей не ограничен, но их содержимое, по естественным причинам, меньше, чем содержимое полей категории «большие тексты».
В этом материале я хочу рассказать о неожиданном влиянии текстов среднего размера на производительность запросов в PostgreSQL. В частности, мы поговорим о TOAST (The Oversized-Attribute Storage Technique, Техника хранения больших атрибутов)
Что делать, если ваш руководитель чайка-менеджер
Думаю, большинство из тех, кто прочитал название статьи, сразу же подумали: «Да не работать просто с мудаком, и всего делов-то». Но как быть, если вы не можете или не хотите увольняться, по крайней мере, прямо сейчас, а нервы не казенные, можно ли что-то предпринять? Подобная проблема может возникнуть у любого человека в найме - и у рядового специалиста, и у топ-менеджера.
Для начала определимся с термином «чайка-менеджмент». Чайка-менеджмент - это стиль управления, при котором менеджер, внезапно «налетев», поднимает много шума, а затем так же внезапно «улетает», оставив после себя полный беспорядок, с которым должны разбираться другие. Проще говоря, если убрать оценочные суждения и эмоции, то чайка-менеджмент - это когда руководитель регулярно вмешивается в ход работы над поставленными им же ранее задачами. Чайка-менеджмент часто путают с микроменеджментом. Микроменеджмент - это постановка простых коротких задач, превращающая сотрудников в биороботов. Метод хорошо подходит для работы с низкоквалифицированным и низкомотивированным персоналом, а также в критических ситуациях, требующих быстрых решений. То есть микроменеджмент предполагает, что руководитель делегирует полномочия, хотя и в очень ограниченном объеме, в отличие от чайка-менеджмента, который является ярким примером нарушения принципов делегирования.
Почему руководитель может себя так вести? У этого есть культурные и исторические причины. Если верить Акунину и Прохорову, то после татаро-монгольского ига в России распространилась авторитарная система единоначалия, в противовес европейским принципам вассалитета: «вассал моего вассала не мой вассал», которые и легли в основу местного самоуправления, а затем переросли в правила делегирования в офисе. Но нас интересуют не все руководители в России разом, а конкретный Иван Иваныч, который может быть умный мужик, читал умные книги по менеджменту, но все равно занимается такой вот херней.
Синхронизируем приложения с помощью Advisory Locks (postgresql). Что это, зачем, и нюансы работы с pgBouncer
В современном мире у одного бекенд-приложения обычно запущено больше одного экземпляра, хотя бы из соображений надёжности. А это значит, что для синхронизации их действий надо что-то придумывать, какое-то внешнее решение: мьютексов или, к примеру, гошных каналов внутри приложения уже недостаточно.
К счастью, во многих случаях в проекте уже есть какая-нибудь база данных, которую можно использовать для этих целей. СУБД сама управляет блокировками, и многие проблемы решаются сами, "под капотом". Например, если два инстанса попытаются обновить одну и ту же строку в таблице, то эта строка не превратится в кашу. СУБД автоматически возьмет нужный лок, и тот, кто пришёл вторым, просто будет ждать, пока этот лок не будет снят.
Проблема в том, что такая автоматика с принудительными локами подходит не для всех случаев. Например, вы массово обрабатываете файлы, предполагая, что никакой файл не будет обрабатываться одновременно двумя приложениями сразу, но при этом не хотите создавать для синхронизации полноценную таблицу в БД. В проектах Каруны такие задачи возникают довольно регулярно.
Для решения подобных проблем в PostgreSQL есть так называемые необязательные блокировки (advisory locks), т.е. локи, которые берутся, исходя из логики приложения, а не автоматики хранения/выдачи данных в БД.
16 советов, как повысить мотивацию к учебе
Занимаетесь две минуты. Проверяете Instagram. Занимаетесь две минуты. Смотрите телевизор. Занимаетесь две минуты. Проверяете электронную почту. Занимаетесь еще две минуты. Зависаете в TikTok на неопределенное время...
Если это напоминает вашу типичную учебу, вы в этом не одиноки, но вам нужна помощь с мотивацией, особенно если скоро экзамен. Возможно, посещение этого сайта - очередная форма откладывания учебы. Если это так, то, по крайней мере, вы на правильном пути.
Не все способы мотивации к учебе подходят всем, но есть те, которые подойдут именно вам. Мы составили список идей мотивации, которые вы можете попробовать, если вам необходимо взять себя в руки и добиться результата.
Просмотрите приведенные ниже способы мотивации и попробуйте воспользоваться несколькими из них. Некоторые хорошо работают по отдельности, некоторые - в сочетании друг с другом, некоторые могут подойти вам сегодня, но не подойти завтра. В любом случае, это хороший способ отдохнуть от занятий, и, возможно, вы найдете то, что действительно поможет вам в учебе.
Приходите на PGConf.Russia 2023
В начале апреля в Рэдиссон-Славянской в Москве пройдёт очередная конференция постгрессистов. Программному комитету удалось собрать много интересных докладов, часть из которых я хотел бы анонсировать тут.
Вулканический поросенок, или SQL своими руками
Сбор, хранение, преобразование и презентация данных — основные задачи, стоящие перед инженерами данных (англ. data engineer). Отдел Business Intelligence Badoo в сутки принимает и обрабатывает больше 20 млрд событий, отправляемых с пользовательских устройств, или 2 Тб входящих данных.
Исследование и интерпретация всех этих данных — не всегда тривиальные задачи, иногда возникает необходимость выйти за рамки возможностей готовых баз данных. И если вы набрались смелости и решили делать что-то новое, то следует сначала ознакомиться с принципами работы существующих решений.
Словом, любопытствующим и сильным духом разработчикам и адресована эта статья. В ней вы найдёте описание традиционной модели исполнения запросов в реляционных базах данных на примере демонстрационного языка PigletQL.
Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться
В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузки СУБД может вести себя не так, как мы ожидаем. Это и есть аномалии, на которых мы сосредоточимся в данной статье (для тех, кто предпочитает видео, эта информация доступна в виде записи доклада на HighLoad++).
Наша компания помогает обслуживать мультитерабайтные базы данных в крупных проектах, поэтому мой рассказ об аномалиях основан на реальном опыте промышленной эксплуатации СУБД в Postgres Professional — порой мы сталкиваемся с тем, что СУБД ведёт себя не так, как мы ожидали.
Также в рамках статьи мы рассмотрим следующее:
Как навсегда запомнить выученное — 2 самые эффективные техники запоминания
Интервальное повторение, эффект припоминания, метод Фейнмана, гипотеза желательной сложности, эффект генерации и другие свойства памяти, не позволяющие информации затеряться в синапсах мозга. Существуют ли техники обучения (запоминания) более эффективные, чем последовательное чтение учебного материала, пусть даже и с заметками?
ТОП горячих клавиш VS Code для начинающего джуна
«Поговорим не про Vim», олдам, сеньорам и тру-си-разработчикам на проверку: пользуетесь ли вы такими сочетаниями VS Code? Если же вы только начинаете программировать, влетаете в айти на реактивном самолете курсов по Питону, или просто не знаете ничего про хоткеи VS Code, возможно вам точно пригодится парочка сочетаний :)
«Почему я не могу нормально зарабатывать?» 5 особенностей мышления, которые мешают это делать
Думаю, как и я, очень многие задавались вопросом: «Почему несмотря на хорошее образование, любознательность, способности и трудолюбие, они зарабатывают меньше, чем им хочется. Где баг, который мешает зарабатывать больше?»
Происхождение и эволюция аллокатора памяти в С
Развитие технических конструкций или же программных систем зачастую напоминает эволюцию живых организмов. С тем отличием, что происходит быстрее и гораздо лучше задокументировано. Можно наблюдать постепенное усложнение, появление новых механизмов/алгоритмов по мере появления новых технических возможностей, комбинирование разных механизмов, исчезновение тупиковых ветвей ... В конце концов это приводит к балансу на пределе физических возможностей и, глядя на результат, уже непонятно, как вообще такое могло появиться на свет, сколько пядей во лбу требуется для общего понимания конструкции.
Аллокатор памяти в С - именно тот случай, когда при попытке ознакомиться с его современным устройством возникает стойкое желание остановиться, мысленно поблагодарить авторов и далее обращаться как с черным ящиком. Если же в читателе сильна любознательность, и/или есть желание постигнуть тайное знание, которое даст ощущение понимания странного поведения программ в нетривиальных случаях, добро пожаловать под кат.
PostgreSQL под капотом. Часть 0. Старт программы
Postgres - один из крупнейших open source проектов. Он создавался многие года. Кодовая база накопилась огромная. Мне, как программисту, всегда было интересно как он работает под капотом. Но не про SQL пойдет речь, а про язык на котором он написан. Про C.
С общей архитектурой можно ознакомиться здесь
Для начала поймем, что происходит до входа в главный цикл сервера.
PostgreSQL под капотом. Часть 3. Инициализация бэкэнда
Приветствую!
На прошлом шаге мы дошли до входной точки Postgres. Сегодня мы пройдемся по ней до главного цикла. Будут рассмотрены:
— Модули для работы с файлами и файловой системой
— Как SIGUSR1передает множественные значения
— Реализации хэш‑таблиц
— Представление и хранение GUC
и многое другое.
PostgreSQL под капотом. Часть 2. Подготовка бэкэнда
В предыдущем посте мы остановились на моменте форка процесса для бэкэнда.
Сегодня рассмотрим как происходит инициализация дочерних процессов после форка от Postmaster, некоторые системные вызовы Linux, goto, парсинг стартап пакета и многие хаки.
PostgreSQL под капотом. Часть 1. Цикл сервера
Продолжаем изучать исходный код PostgreSQL
В этот раз исследуем главный цикл сервера:
- Принятие входящих подключений;
- Проверка окружения;
- Обработка упавших воркеров.
Information
- Rating
- Does not participate
- Location
- Akhsu, Tavush, Армения
- Registered
- Activity