Search
Write a publication
Pull to refresh
393
5.4
Дмитрий EvilDBA @Tzimie

DBA

Send message

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

Level of difficultyEasy
Reading time3 min
Views17K

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

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

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

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

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

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

Читать далее

Хороший ретрай, плохой ретрай, или История одного падения

Level of difficultyMedium
Reading time17 min
Views60K

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

Читать далее

Теория типов

Level of difficultyMedium
Reading time43 min
Views37K

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

Что можно узнать из этой статьи?

Новое в SQL Server 2022: Контейнерные группы доступности

Level of difficultyHard
Reading time6 min
Views2.8K

Это новая концепция обеспечения идентичности ограниченного набора системных объектов и сущностей, которой до этого очень недоставало. Администраторам баз данных приходилось «вручную» синхронизировать логины, задания агента, планы обслуживания и множество других системных сущностей, которые описывались в таблицах системных баз данных master и msdb. Теперь появился способ возложить это на SQL Server 2022, но ждать этой возможности нам пришлось 10 лет…

Читать далее

Искусственный интеллект, Большой Взрыв, чёрные дыры и филиокве — ищем ответ на вопрос, расколовший христианскую церковь

Level of difficultyEasy
Reading time19 min
Views6.6K

Весь мир - театр. В нём женщины, мужчины — все актёры.
Уильям Шекспир

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

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

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

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

Читать далее

Пароли здорового человека (part II) и зачем вам цифровое завещание

Level of difficultyEasy
Reading time7 min
Views9.5K

Итак, в part I мы разбирали жизненный цикл homo sapiens, который уже дошел до знания, как обращаться с паролями, умеет их централизованно хранить и теперь ему надо научиться передавать это знание (точнее, менеджер паролей и цифровое завещание) потомкам на тот случай, если его догонит какой-нибудь лев-тигар. Ведь именно передача полезных знаний между поколениями позволяет социуму избегать повторения простых ошибок, например хранить мастер пароль под клавиатурой и верить новостям из телевизора.

Но в начале, надо обсудить еще один способ восстановления доступа к своим данным аутентификации, на самый крайний случай: если потеряны ВСЕ устройства с бэкапами.

Читать далее

Четыре способа написать Hello world, или инструменты для создания GUI на Python

Level of difficultyEasy
Reading time5 min
Views62K

После написания программы ее можно модифицировать и добавить графический интерфейс — с Python это проще, чем кажется. Для программирования красивого и функционального GUI иногда достаточно простого знания html и css.

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →

Поколение оскорблённых: защита прав или дискриминация инакомыслия?

Reading time10 min
Views9.4K

Начать хотелось бы с простого вопроса - а вам не кажется, что люди стали слишком часто обижаться? На всё подряд. Религия, рацион, мировоззрение, традиции, язык, цвет кожи, сексуальная ориентация, гендерная идентичность, длина волос, национальные костюмы... на всё подряд. Оскорблённость сейчас словно является непременным атрибутом высокоморального человека. Хороший человек просто обязан быть на кого-то обиженным и требовать контрибуций и репараций в пользу своей социальной группы, иначе его признают пассивным и непросветленным, а то и вообще запишут в ранг "угнетателей" с последующими попытками весьма агрессивного переубеждения.

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

Читать с риском обидеться

Удивительные клеточные автоматы: направленные и пользовательские окрестности

Level of difficultyEasy
Reading time7 min
Views3.5K


?, Хабр!

На прошлых неделях мы познакомились с различными вариациями альтернативных окрестностей – начиная с учёта расположения нотацией Хенселя, через альтернативные шаблоны расположения, и заканчивая взвешенными окрестностями. Сегодня добавим в тему окрестностей стандартного поля небольшой финальный штрих – пользовательские расположения.
Что здесь происходит (для новых читателей серии)
В этой серии мы разбираем клеточные автоматы – дискретную модель, основой которой является сетка из ячеек-клеток, которые изменяют (или не изменяют) своё состояние в зависимости от количества соседей.
Учёт соседей определяется правилами, которые устанавливаются нами. Вариаций правил существует бесчисленное множество, и они были систематизированы в определённые конфигурации.
Самая популярная конфигурация – «B/S», или «life-like», по названию крайне широко известного клеточного автомата «Game of Life», где B/S обозначает, что в нашем правиле мы описываем всего два параметра – количество соседей необходимых для рождения новой клетки в пустой ячейке, и количество соседей для выживания существующей клетки.
В каждой статье серии мы углубляемся в данную конфигурацию, добавляя новые параметры, либо дополняя существующие. Иногда заглядываем и в прочие конфигурации.
Для понимания сегодняшней статьи достаточно знать, что:
  • поиск соседей изначально выполняется в радиусе 1 (8 окружающих клеток – ), но мы можем установить другой, добавив к правилу Rx, где x – нужный нам радиус;
  • мы можем изменять шаблон окрестности поиска соседей. Изначально подразумевается окрестность Мура – R в каждую сторону (и диагональ) от рассматриваемой клетки, – но указывая Nxx мы будем определять иной шаблон, что, конечно, изменит вид правила. Сегодня мы продолжаем расширение этой части правила. Знакомство с предыдущими расширениями не является необходимым, но вы, конечно, можете предварительно ознакомиться с ними и прочими дополнениями, для большей последовательности чтения. Ссылки в конце материала и в профиле.
Читать дальше →

Почему десктопные приложения работают на веб-платформе?

Level of difficultyMedium
Reading time8 min
Views36K

Где мы свернули не туда? Как получилось, что современный десктопный GUI по умолчанию использует платформу HTML/CSS/JavaScript, которая изначально не предназначена для нативной работы на десктопе? Она создана конкретно для браузера и веба. Зачем из нативного софта делать веб-страницы в браузерной оболочке?

Джефф Этвуд (автор Stack Overflow) предсказал этот феномен ещё в 2007 году. Он тогда сформулировал так называемый закон Этвуда:

Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript.

Так и вышло.
Читать дальше →

Всё, что вы НЕ хотели бы знать о сервисах онлайн знакомств… [много букОв и иллюстраций + регулярно дополняется]

Reading time60 min
Views343K
Компьютерные сети изменили мир и подарили нам возможность не выбирать «меньшее из зол» из ограниченного числа сложившихся по жизни контактов, а найти по-настоящему любимого человека, даже если он прячется от нас на другом материке. Разумеется, мы можем отказаться от этой возможности и пойти по воспетому российской эстрадой садистско-мазохистскому сценарию «слепила из того, что было, а потом, что было, то и полюбила». И все будут только рады, если у нас всё получится. Но, если мы подведем статистику известных нам счастливых пар, сложившихся по этому сценарию, и трезво оценим вероятность успешного исхода, то, вероятно, путь поиска своего счастья в мировой паутине покажется нам более перспективным. И в этой статье я хочу рассказать вам о тех проблемах с которыми на этом пути можно столкнуться.
Читать дальше →

Топ полезных SQL-запросов для PostgreSQL

Reading time7 min
Views114K

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

Читать далее

Как базы данных «ключ-значение» обеспечивают производительность и масштабируемость без границ

Reading time8 min
Views23K


Команда VK Cloud перевела статью о базах «ключ-значение». Вы узнаете, в чем их преимущества перед другими БД, какие базы работают по этому принципу и чем они отличаются между собой.

В чем суть баз «ключ-значение»


Суть проста — объекты в них хранятся и извлекаются с помощью ключа. Так мы прощаемся с:

  • таблицами, столбцами и вводом ant data — всем, что можно так или иначе назвать blob-объектом;
  • отношениями между объектами;
  • сложными операциями.

Что же мы получаем взамен, когда отбрасываем все это?
Читать дальше →

OSINT по спутниковым изображениям

Reading time3 min
Views50K
image

Мы живем в такое время, когда снимок со спутника можно получить в один клик. В оптическом, в инфракрасном и в радиодиапазоне. А еще историю изменений в определенной координате за несколько лет.

Зеленый Кот нашел разбившуюся советскую исследовательскую станцию «Марс-3» по снимкам со спутника, тысячи экологов следят за лесами Амазонки и состоянием береговой линии, школьники делают учебные проекты по слежке за популяцией моржей, репортеры проводят расследования, освобождают рабов, мониторят лагеря беженцев.

Предлагаю вам подборку бесплатных ресурсов и проектов со спутниковыми данными, программами обработки этих данных и полезные статьи.
Читать дальше →

Как оплатить VPN без Visa и Mastercard

Reading time2 min
Views79K

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

Читать далее

Лямбда-исчисление в 397 байтах

Reading time22 min
Views16K

Лямбда-исчисление — это язык программирования с единственным ключевым словом. Это асфальтовая топь Тьюринга, обнаруженная научным руководителем Тьюринга. В этом посте я расскажу о совершенно новой 397-байтной реализации двоичного лямбда-исчисления в виде Linux ELF для x86-64. Также в нём представлены удобно портируемый код на C и собранные двоичные файлы APE для других платформ.
Читать дальше →

Карманный справочник: сравнение синтаксиса MS SQL Server и PostgreSQL

Reading time17 min
Views104K

Приветствую, уважаемые хаброжители!

Так как занимаюсь переводом кода с MS SQL в Postgre SQL с начала 2019 года, то решил продолжить сравнение этих двух СУБД.

В прошлой публикации мы рассматривали отличия в быстродействии MS SQL и PostgreSQL для 1C.

Сегодня давайте сравним основные конструкции синтаксиса MS SQL и PostgreSQL для правильного чтения кода, а также для того, чтобы быстро изменить код из MS SQL для PostgreSQL или наоборот.

Начнем рассмотрение с сопоставления типов.

Читать далее

Формула Бине без плавающей точки

Reading time4 min
Views13K

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

Читать далее

Говорите длиннее: история процессоров компании Transmeta

Reading time11 min
Views14K

Когда 19 января 2000 года, общественности был представлен новый процессор Transmeta Crusoe (странно, но презентация прошла в среду, а не в пятницу), разнообразные, порой неправдоподобные, слухи о компании ходили вот уже почти два с половиной года — с тех пор, как появился ее сайт с чистой главной страницей и заголовком «Not yet the Transmeta home page». За пару месяцев до релиза, на странице начали появляться намеки на предстоящую презентацию, но они лишь подогревали слухи…

Сама же компания была основана еще в 1995 году и с тех самых пор в атмосфере строжайшей секретности разрабатывала процессор будущего. Быстрый, холодный и удивительный. Он должен был составить конкуренцию грандам — Intel и AMD. Он должен был быть полностью совместим с ними, имея при этом внутри устройство, совершенно иное от соперников.
Читать дальше →

Про минусование и плюсование на Хабре

Reading time1 min
Views5.4K

Пару десяток минут тому назад написал комент. Тут же прилетел минус. Я не против, так работает система. Просто непонятно "за что?".

В чём дело? В коменте ложь? Или он просто не нравится? Или "твоя морда мне не нравится"? То же самое касается плюсов. Плюс за то что вы того-же мнения, полностью согласны? Или вам просто статья, стиль нравится? Или тема обсуждения? За что!?

Раз Хабр уже разрабатывает новую "одёжку", может было бы полезно и интересно (владельцам, публике) сделать какие-то категории плюсования и минусования. Что бы было понятно "за что?".

Я такое не ожидаю от соседской собаки. Если она гавкает, может мой запах ей не нравится , а может сосед её только что отлупил, может её не кормили уже два дня, может она просто "на хлеб зарабатывает" лая на всех подряд... но на Хабре вроде бы айтишники? Человеки думающие.

Конкретное предложение - сделать небольшые меню для плюсования/минусования с опциями "за что", если сочтёте потенциально полезным.

Без этого мы останемся на уровне собак, будем вилять хвостом или гавкать, а другая сторона пусть догадывается "за что".

Кстати, на входе можно свободно использовать autoFocus/autofocus для несмартфонных клиэнтов.

Нету тут чего далее читать

Information

Rating
1,768-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Specialist
English
C
SQL
Python
High-loaded systems
C#