Pull to refresh
55
0

Пользователь

Send message

Прокрастинация

Level of difficulty Easy
Reading time 4 min
Views 31K

Данная статья написана по материалам лекций психолога в МФТИ. Эти лекции показались мне очень полезными, поэтому я решил поделиться своим конспектом.

Читать далее
Total votes 40: ↑39 and ↓1 +38
Comments 34

Как мы создавали и внедряли свою матрицу компетенций

Reading time 7 min
Views 21K

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

Сегодня поговорим про матрицы компетенций и, как мы их внедряли в «Рексофт». Мы уже рассказывали про матрицу Android-программиста, и как мы вводили кросс-интервью при повышении грейда, а сегодня я расскажу, о том, как все начиналось и куда мы пришли. Итак, поехали!

Читать далее
Total votes 20: ↑13 and ↓7 +6
Comments 20

PostgreSQL 16: Часть 5 или Коммитфест 2023-03

Reading time 27 min
Views 6.6K

Вместе с окончанием мартовского коммитфеста, закончился прием изменений в 16-ю версию. Пришла пора посмотреть, что в нем было нового и интересного.


Надеюсь, что представленный материал вместе с предыдущими статьями серии (2022-07, 2022-09, 2022-11, 2023-01) поможет сформировать представление о новинках PostgreSQL 16.

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 0

Postgres: графовая база данных, о которой вы не подозревали

Reading time 4 min
Views 15K

PostgreSQL (Postgres) — это мощная реляционная база данных, способная хранить широкий спектр типов и структур данных. Когда нам нужно хранить графовые структуры данных, мы часто обращаемся к базам данных, позиционируемым как подходящее для этого решение, например, к Neo4J или Dgraph. Но не торопитесь! Хотя при работе с графовыми структурами данных о Postgres обычно не вспоминают, она идеально справляется с эффективным хранением графовых данных и запросами к ним.
Читать дальше →
Total votes 31: ↑23 and ↓8 +15
Comments 20

Неожиданное влияние текстов среднего размера на производительность PostgreSQL

Reading time 18 min
Views 15K
В схеме любой базы данных, наверняка, будет множество текстовых полей. Я, для целей этой статьи, разделил текстовые поля на три категории:

  1. Маленькие тексты. Имена и фамилии людей, заголовки страниц, имена пользователей, адреса электронной почты и прочее подобное. Обычно на размер таких полей накладываются определённые ограничения, довольно сильные. Возможно, это даже не поля типа text, а поля типа varchar(n).
  2. Большие тексты. Это, например, содержимое публикаций в блогах, тексты статей, HTML-код. Такие данные представляют собой большие фрагменты текста неограниченной длины, хранящиеся в базе данных.
  3. Тексты среднего размера. Это — описания, комментарии, отзывы о товарах, данные о трассировке стека и так далее. В сущности это — любые текстовые поля, размер которых находится между размерами «маленьких» и «больших» текстов. Обычно размер таких полей не ограничен, но их содержимое, по естественным причинам, меньше, чем содержимое полей категории «большие тексты».



В этом материале я хочу рассказать о неожиданном влиянии текстов среднего размера на производительность запросов в PostgreSQL. В частности, мы поговорим о TOAST (The Oversized-Attribute Storage Technique, Техника хранения больших атрибутов) 
Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Comments 7

Что делать, если ваш руководитель чайка-менеджер

Reading time 6 min
Views 14K

Думаю, большинство из тех, кто прочитал название статьи, сразу же подумали: «Да не работать просто с мудаком, и всего делов-то». Но как быть, если вы не можете или не хотите увольняться, по крайней мере, прямо сейчас, а нервы не казенные, можно ли что-то предпринять? Подобная проблема может возникнуть у любого человека в найме - и у рядового специалиста, и у топ-менеджера.

Для начала определимся с термином «чайка-менеджмент». Чайка-менеджмент - это стиль управления, при котором менеджер, внезапно «налетев», поднимает много шума, а затем так же внезапно «улетает», оставив после себя полный беспорядок, с которым должны разбираться другие. Проще говоря, если убрать оценочные суждения и эмоции, то чайка-менеджмент - это когда руководитель регулярно вмешивается в ход работы над поставленными им же ранее задачами. Чайка-менеджмент часто путают с микроменеджментом. Микроменеджмент - это постановка простых коротких задач, превращающая сотрудников в биороботов. Метод хорошо подходит для работы с низкоквалифицированным и низкомотивированным персоналом, а также в критических ситуациях, требующих быстрых решений. То есть микроменеджмент предполагает, что руководитель делегирует полномочия, хотя и в очень ограниченном объеме, в отличие от чайка-менеджмента, который является ярким примером нарушения принципов делегирования.

Почему руководитель может себя так вести? У этого есть культурные и исторические причины. Если верить Акунину и Прохорову, то после татаро-монгольского ига в России распространилась авторитарная система единоначалия, в противовес европейским принципам вассалитета: «вассал моего вассала не мой вассал», которые и легли в основу местного самоуправления, а затем переросли в правила делегирования в офисе. Но нас интересуют не все руководители в России разом, а конкретный Иван Иваныч, который может быть умный мужик, читал умные книги по менеджменту, но все равно занимается такой вот херней.

Читать далее
Total votes 16: ↑12 and ↓4 +8
Comments 33

Синхронизируем приложения с помощью Advisory Locks (postgresql). Что это, зачем, и нюансы работы с pgBouncer

Reading time 4 min
Views 11K


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


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


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


Для решения подобных проблем в PostgreSQL есть так называемые необязательные блокировки (advisory locks), т.е. локи, которые берутся, исходя из логики приложения, а не автоматики хранения/выдачи данных в БД.

Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 16

16 советов, как повысить мотивацию к учебе

Level of difficulty Medium
Reading time 9 min
Views 49K

Занимаетесь две минуты. Проверяете Instagram. Занимаетесь две минуты. Смотрите телевизор. Занимаетесь две минуты. Проверяете электронную почту. Занимаетесь еще две минуты. Зависаете в TikTok на неопределенное время...

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

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

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

Читать далее
Total votes 14: ↑7 and ↓7 0
Comments 7

Приходите на PGConf.Russia 2023

Reading time 3 min
Views 2.6K

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

Читать далее
Total votes 31: ↑30 and ↓1 +29
Comments 6

Вулканический поросенок, или SQL своими руками

Reading time 15 min
Views 15K


Сбор, хранение, преобразование и презентация данных — основные задачи, стоящие перед инженерами данных (англ. data engineer). Отдел Business Intelligence Badoo в сутки принимает и обрабатывает больше 20 млрд событий, отправляемых с пользовательских устройств, или 2 Тб входящих данных.


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


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

Читать дальше →
Total votes 47: ↑45 and ↓2 +43
Comments 10

Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться

Reading time 14 min
Views 23K

В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузки СУБД может вести себя не так, как мы ожидаем. Это и есть аномалии, на которых мы сосредоточимся в данной статье (для тех, кто предпочитает видео, эта информация доступна в виде записи доклада на HighLoad++).

Наша компания помогает обслуживать мультитерабайтные базы данных в крупных проектах, поэтому мой рассказ об аномалиях основан на реальном опыте промышленной эксплуатации СУБД в Postgres Professional — порой мы сталкиваемся с тем, что СУБД ведёт себя не так, как мы ожидали.

Также в рамках статьи мы рассмотрим следующее:

Читать далее
Total votes 67: ↑67 and ↓0 +67
Comments 14

Как навсегда запомнить выученное — 2 самые эффективные техники запоминания

Reading time 17 min
Views 55K

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

Читать далее
Total votes 35: ↑34 and ↓1 +33
Comments 23

ТОП горячих клавиш VS Code для начинающего джуна

Level of difficulty Easy
Reading time 3 min
Views 121K

«Поговорим не про Vim», олдам, сеньорам и тру-си-разработчикам на проверку: пользуетесь ли вы такими сочетаниями VS Code? Если же вы только начинаете программировать, влетаете в айти на реактивном самолете курсов по Питону, или просто не знаете ничего про хоткеи VS Code, возможно вам точно пригодится парочка сочетаний :)

Читать далее
Total votes 31: ↑21 and ↓10 +11
Comments 30

«Почему я не могу нормально зарабатывать?» 5 особенностей мышления, которые мешают это делать

Level of difficulty Easy
Reading time 6 min
Views 90K

Думаю, как и я, очень многие задавались вопросом: «Почему несмотря на хорошее образование, любознательность, способности и трудолюбие, они зарабатывают меньше, чем им хочется. Где баг, который мешает зарабатывать больше?»

Читать далее
Total votes 133: ↑113 and ↓20 +93
Comments 145

Происхождение и эволюция аллокатора памяти в С

Reading time 11 min
Views 22K

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

Аллокатор памяти в С - именно тот случай, когда при попытке ознакомиться с его современным устройством возникает стойкое желание остановиться, мысленно поблагодарить авторов и далее обращаться как с черным ящиком. Если же в читателе сильна любознательность, и/или есть желание постигнуть тайное знание, которое даст ощущение понимания странного поведения программ в нетривиальных случаях, добро пожаловать под кат.

Читать далее
Total votes 104: ↑103 and ↓1 +102
Comments 31

PostgreSQL под капотом. Часть 0. Старт программы

Reading time 17 min
Views 13K

Postgres - один из крупнейших open source проектов. Он создавался многие года. Кодовая база накопилась огромная. Мне, как программисту, всегда было интересно как он работает под капотом. Но не про SQL пойдет речь, а про язык на котором он написан. Про C. 

С общей архитектурой можно ознакомиться здесь

Для начала поймем, что происходит до входа в главный цикл сервера.

Читать далее
Total votes 24: ↑24 and ↓0 +24
Comments 2

PostgreSQL под капотом. Часть 3. Инициализация бэкэнда

Reading time 33 min
Views 5.9K

Приветствую!

На прошлом шаге мы дошли до входной точки Postgres. Сегодня мы пройдемся по ней до главного цикла. Будут рассмотрены:

— Модули для работы с файлами и файловой системой

— Как SIGUSR1передает множественные значения

— Реализации хэш‑таблиц

— Представление и хранение GUC

и многое другое.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 3

PostgreSQL под капотом. Часть 2. Подготовка бэкэнда

Reading time 16 min
Views 3.8K

В предыдущем посте мы остановились на моменте форка процесса для бэкэнда.

Сегодня рассмотрим как происходит инициализация дочерних процессов после форка от Postmaster, некоторые системные вызовы Linux, goto, парсинг стартап пакета и многие хаки.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 0

PostgreSQL под капотом. Часть 1. Цикл сервера

Reading time 7 min
Views 14K

Продолжаем изучать исходный код PostgreSQL

В этот раз исследуем главный цикл сервера:

- Принятие входящих подключений;

- Проверка окружения;

- Обработка упавших воркеров.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 3
1

Information

Rating
Does not participate
Location
Akhsu, Tavush, Армения
Registered
Activity