Обновить
25
1

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

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

Транзакции в базах данных на примере PostgreSQL

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели17K

Транзакция — это набор операций с базой данных. В этот набор может входить как одна операция, так и несколько. Операции внутри транзакции либо выполняются все и полностью, либо ни одна операция не выполняется. Это свойство еще называют атомарностью. Транзакция переводит базу данных из одного согласованного состояния в другое. Согласованность означает что данные в базе данных подчиняются определенным правилам, которые были заложены при ее создании. К примеру, у нас есть две таблицы — Покупатели (Customer) и Покупки (Purchase).

Читать далее

Кэширование с FeignClient: как ускорить микросервисы и стать героем проекта

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

Кэширование с FeignClient: ускоряем микросервисы и радуем пользователей

Статья о том, как добавить кэширование в FeignClient с помощью Caffeine Cache и сделать микросервисы молниеносными. Простая настройка, минимум кода, максимум пользы — пошагово на примере Java и Spring Boot, чтобы ваши запросы летали, а API не тормозил.

Читать далее

ByeDPI + Redsocks на OpenWRT: дарим свободу локальной сети на дровах (на примере ASUS RT-N12 ROM/ОЗУ: 8/32 Мб)

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

Решение проблемы зачастую упирается в использование роутеров с ограниченными ресурсами, таких как ASUS RT-N12 VP B1 с ROM/ОЗУ 8/32 Мб. В этой статье я расскажу, как настроить связку ByeDPI и Redsocks на роутере с OpenWRT, даже если ваш роутер далеко не топ по характеристикам.

## Зачем нужны ByeDPI и Redsocks?

ByeDPI — это утилита для обхода DPI (Deep Packet Inspection), которая изменяет сетевые пакеты таким образом, чтобы они не распознавались системами фильтрации трафика.

Redsocks — это прокси-инструмент, который перенаправляет трафик через SOCKS или HTTP прокси, даже если приложение не поддерживает прокси напрямую.

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

Ставим ByeDPI и Redsocks на OpenWRT

Что ищет он в краю далёком? Как найти смысл жизни с PostgreSQL

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели4.6K

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

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

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

Откроем скрытые смыслы

PSQLBuddy — резервное копирование и восстановление PostgreSQL

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели3.6K

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

Опять-двадцать пять, или резервное копирование баз данных PostgreSQL по новому. Снова.

Читать далее. Опять

Zettelkasten и Obsidian: ваш помощник в структурировании знаний

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

Представьте себе систему, которая поможет вам организовать и связывать все ваши идеи, проекты и задачи так, как если бы у вас появился второй мозг. Узнайте, как Zettelkasten и Obsidian помогают программистам и исследователям максимально эффективно работать с информацией.

Наращивать нейроны

Как я адаптировал v2rayN для России или российские источники geo файлов для v2ray/sing-box/etc

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели128K

Сегодня был выпущен мажорный релиз v2rayN v7.0, а вместе с ним и моя серия коммитов, которые добавляют поддержку пресета "Россия".

Для его работы так же был создан российский источник geo файлов для v2ray/sing-box/etc.

Читать далее

Поиск «токсичных» SQL-запросов

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.9K

Мы, студенты из МИФИ, Даниил и Александр, пришли на стажировку в Сбербанк в департамент SberData, который занимается развитием внутренней корпоративной аналитической платформы (КАП).Это современная платформа с удобными инструментами созданная для закрытия полного спектра потребностей Сбера в работе с данными, таких как хранение, интеграция, разнообразная аналитика, отчетность, моделирование и контроль качества данных. Все эти направления было бы трудно развивать без отдельного R&D подразделения, в составе которого мы и работаем. Сегодня мы хотим поделиться нашим исследованием в области проектирования алгоритмов в выявлении «токсичных» SQL‑запросов с помощью машинного обучения. Почему же запросы называются именно «токсичные»? Они затрачивают на своё выполнение слишком большое количество ресурсов, а именно времени. На самом деле не только время, но для упрощения мы будем считать только время, так как это ключевой параметр.

Статья посвящена исследованию существующих подходов и их апробации на открытых данных. В качестве общедоступных данных были выбраны данные из таких бенчмарков, как TPC‑H и BIRD. Помимо этого, в статье рассматриваются некоторые трудности, с которыми мы столкнулись при работе над задачей, например, генерация данных и SQL‑запросов, а также миграция между диалектами SQL. В конце статьи мы опишем оригинальный подход, к которому по итогу пришли. В следующей статье мы расскажем о применении полученного опыта для реальной промышленной системы.

Читать далее

Регулярные выражения в SQL

Время на прочтение6 мин
Охват и читатели24K

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

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

Читать далее

Альтернативный список заблокированных в РФ ресурсов Re:filter

Время на прочтение5 мин
Охват и читатели37K

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

Получилось реализовать в достаточно компактные списки доменов и адресов, которые не перегрузят среднестатистическое устройство, но при этом список будут разделять заблокированные ресурсы и не позволят, например, пускать через VPN трафик на незаблокированные ресурсы, а значит не нарушат работу сервисов, онлайн игр и т.д. непредсказуемым образом

Читать далее

far2l в Ubuntu 24.04 LTS готов для повседневного использования

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

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

sudo apt update

sudo apt install far2l

Читать далее

Оконные функции простым языком — Фреймы

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

Привет всем!

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

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи :-)

Будем разбирать примеры на такой небольшой таблице, где указана прибыль (net_profit) компании на каждый месяц в рамках одного года.

Читать далее

Одна платформа, чтобы мониторить всех: как мы осуществляем трассировку, работаем с логами и метриками во всей экосистеме

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6K

Привет, Хабр! Меня зовут Филипп Бочаров, я руководитель направления мониторинга и наблюдаемости в МТС Диджитал. В нашей экосистеме более 400 продуктов, которые активно взаимодействуют между собой. Для такого обширного ландшафта мы используем единую платформу мониторинга: она устанавливает общие стандарты, дает возможность легкого перехода на новый стек и снижает трудозатраты на типовые операции. 

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

Читать далее

Как создать модель миньона с нуля: бесплатные уроки Blender для детей

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели23K

Давайте прокачаем навыки в направлении трехмерного моделирования и вместе попробуем создать миньона в программе «Блендер», предназначенной для работы с 3D‑графикой. Сразу отметим, что без базовых представлений о Blender подготовленная нами инструкция покажется трудной. Но попробовать точно стоит. Ниже оставим подборку уроков для совсем новичков, можно начать с нее, а затем вернуться к этому туториалу. Уроки предназначены для подростков 13–14 лет и старше.

Создание 3Д‑моделей — распространенное направление: оно используется в киноиндустрии, рекламе, маркетинге и дизайне, а также в разработке игр и промышленности. Профессиональные моделлеры часто применяют инструменты среды Blender — бесплатного программного обеспечения, созданного специально для 3D‑моделирования. Это обусловлено расширенными возможностями платформы.

Если вы уже имеете опыт работы в моделировании или просто хочется попробовать свои силы и сделать первые шаги в создании 3D‑моделей в Blender, вам пригодится представленная инструкция. В ней мы собрали 10 уроков в виде текстовых гайдов, а также предусмотрели видеоролики на случай, если не получится разобраться без визуала. Мы создадим модель миньона, сделаем базовое текстурирование и добавим анимацию.

Читать далее

Data Warehouse, Data Lake, Data Lakehouse, Data Fabric, Data Mesh – что это такое, и в чем разница между концепциями

Время на прочтение14 мин
Охват и читатели19K

Эпоха современных хранилищ данных началась с появления реляционных баз данных (далее БД). С появлением бизнес‑аналитики следствием развития БД стала концепция Data Warehouse (корпоративное хранилище данных, DWH).

Дальнейший рост объемов данных, введение термина «большие данные» и разнообразие требований к обработке привели к эволюции архитектур данных.

Рассмотрим этапы эволюции архитектуры данных: чем отличаются концепции, какие у них преимущества и недостатки, для каких задач в работе с данными подходят.

Читать далее

ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели3.5K

Про байт‑код написано уже немало. Он везде, и никого этим не удивить: его генерирует компилятор, переупаковывает система сборки, «портит» обфускатор и изредка читают программисты. Естественно, для работы с байт‑кодом есть немало инструментов, которые используются в разных областях и на разных платформах. Среди них и ByteWeaver — инструмент для патчинга байт‑кода во время сборки, который может быть полезен разработчикам под Android.

Меня зовут Александр Асанов. Я Android‑разработчик в OK, Tracer, ByteWeaver. В этой статье я разберу, что такое байт‑код, как и зачем с ним работать, расскажу о ByteWeaver и покажу примеры работы с байт‑кодом.

Читать далее

Obsidian: синхронизация без боли

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

Легкий и простой способ настроить бесплатную синхронизацию Obsidian между всеми своими устройствами.

Читать далее

SQL HowTo: Black and White (Puzzle Hunt 2010)

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели1.1K

Некоторые головоломки можно решать на SQL just for fun, а часть получается выразить на этом декларативном языке даже эффективнее других, императивных.

Попробовать сделать более наглядное решение, а заодно познакомить с некоторыми нетривиальными возможностями PostgreSQL меня натолкнул пост о решении на Python задачи Black and White.

Читать далее

Как Notion обрабатывает 200 миллиардов объектов данных

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

Переход от PosgreSQL-only решения к собственному DataLake для отделения read нагрузки под нужды аналитики и AI.

Читать далее

Уровни изоляции транзакций в БД

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

В этой статье обсудим, что из себя представляет изолированность транзакций в БД, какие есть уровни изоляции транзакций, как их установить, какие бывают аномалии на разных уровнях, и что такое MVCC. Естественно, всё на простых примерах.

Читать далее

Информация

В рейтинге
1 691-й
Работает в
Зарегистрирован
Активность