Как стать автором
Обновить
55
0

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

Отправить сообщение

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

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

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

Читать далее
Всего голосов 40: ↑39 и ↓1+38
Комментарии34

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

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

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

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

Читать далее
Всего голосов 20: ↑13 и ↓7+6
Комментарии20

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

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

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


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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

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

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

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

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

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

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



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

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

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

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

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

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

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии33

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

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


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


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


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


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

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии16

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

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

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

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

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

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

Читать далее
Всего голосов 14: ↑7 и ↓70
Комментарии7

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

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

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

Читать далее
Всего голосов 31: ↑30 и ↓1+29
Комментарии6

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

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


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


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


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

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии10

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

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

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

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

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

Читать далее
Всего голосов 67: ↑67 и ↓0+67
Комментарии14

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

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

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

Читать далее
Всего голосов 35: ↑34 и ↓1+33
Комментарии23

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

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

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

Читать далее
Всего голосов 31: ↑21 и ↓10+11
Комментарии30

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

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

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

Читать далее
Всего голосов 133: ↑113 и ↓20+93
Комментарии145

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

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

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

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

Читать далее
Всего голосов 104: ↑103 и ↓1+102
Комментарии31

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

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

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

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

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

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии2

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

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

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

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

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

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

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

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

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

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

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии3
1

Информация

В рейтинге
Не участвует
Откуда
Akhsu, Tavush, Армения
Зарегистрирован
Активность