Оконные функции (window functions) — это фича, позволяющая производить манипуляции между строками, возвращаемыми одним SQL-запросом. Похоже на GROUP BY, но, в отличие от него, строки не объединяются в одну. Есть задачи, в которых оконные функции исключительно удобны. Например, когда нужно показать некие значения (выручку, посещаемость) за месяц, и рядом с ними — насколько это больше или меньше по сравнению с прошлым месяцем.

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

Благодаря статье Внутренности PostgreSQL: страницы и кортежи мы узнали, что каждый кортеж в PostgreSQL хранит t_xmin и t_xmax — XIDы транзакций создавшей и удалившей кортеж соответственно. Зная XID текущей транзакции, ее уровень изоляции, а также состояние транзакций t_xmin и t_xmax, СУБД способна определить, виден ли кортеж в текущей транзакции или нет. Узнать состояние транзакции по ее XID можно при помощи ProcArray и CLOG.

Я снова решил переделать свой fan dipole (см часть один, часть два). Антенна всем хороша, но на 12-и метрах редко бывает хорошее прохождение. За все время использования антенны мне удалось провести только одну радиосвязь на этом диапазоне. Было решено заменить его диапазоном 20 метров.

Ранее мы разобрались, как PostgreSQL хранит страницы на диске, и как можно посмотреть их содержимое при помощи pageinspect. Но возникает вот какой вопрос. Если размер страницы составляет несколько килобайт, и кортежи не могут занимать несколько страниц, то как СУБД хранит атрибуты с типом TEXT? Ведь строки явно могут быть длиннее пары тысяч символов. Это возможно благодаря штуке под названием The Oversized-Attribute Storage Technique, или сокращенно TOAST.

В качестве основной антенны для КВ в последнее время я использовал fan dipole на WARC-диапазоны. Это хорошая, годная антенна. Но я подумал, что было бы неплохо иметь выход еще и на 40 метров. Ведь в SSB тоже бывает приятно пообщаться, а прохождение на 17-и метрах нынче оставляет желать лучшего.

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

Пару лет назад я рассказывал про двухэлементную Уда-Яги из акустического кабеля. Это довольно серьезная антенна, но имеется большой недостаток — она не вращается. Спрашивается, а можно ли устранить данный дефект? Желательно, не покупая земельный участок под антенный полигон с тяжелыми мачтами, поворотными устройствами и вот этим вот всем. Одно из возможных решений заключается в том, чтобы сделать антенну Моксон.

Одна из возможностей PostgreSQL, которой часто пренебрегают — это NOTIFY и LISTEN. Данный механизм позволяет использовать РСУБД в роли брокера сообщений. NOTIFY/LISTEN обладает рядом полезных свойств, которых нет у прочих решений, таких, как RabbitMQ или Kafka.

Найти подходящий корпус — это всегда проблема. В моих проектах нужны корпуса с экранированием, что вносит дополнительную сложность. Я пробовал покупать готовые корпуса на AliExpress. Получалось не дешево и приходилось долго ждать. Корпуса иной раз терялись или приходили поврежденными. Пробовал сам делать корпуса из листового алюминия. Обрабатывать металл ручными инструментами, а других у меня нет — задача, скажем так, на любителя. К тому же, с моими руками корпуса выходят кривоватые. В этот раз было решено попробовать 3D-печать. Да, проявив немного фантазии, здесь можно добиться нормального экранирования.