Сборка и установка турника 3 в 1

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

Проверка DNS-балансировки

host -t a google.com

PostgreSQL размер таблиц и индексов

Надыбал такой запрос, который вытягивает размеры таблиц и их индексов, а также суммарный размер: SELECT TABLE_NAME, pg_size_pretty(table_size) AS table_size, pg_size_pretty(indexes_size) AS indexes_size, pg_size_pretty(total_size) AS total_size FROM ( SELECT TABLE_NAME, pg_table_size(TABLE_NAME) AS table_size, pg_indexes_size(TABLE_NAME) AS indexes_size, pg_total_relation_size(TABLE_NAME) AS total_size FROM ( SELECT (‘»‘ || table_schema || ‘».»‘ || TABLE_NAME || ‘»‘) AS TABLE_NAME FROM information_schema.tables )
Читать далее…

Суффиксный массив на Java за N*log^2(N)

public static int[] getSuffixArray(String s) { System.out.println(s); int N = s.length(); int steps = Integer.bitCount(Integer.highestOneBit(N) — 1); int rank[][] = new int[steps + 1][N]; for (int i = 0; i < N; i++) { rank[0][i] = s.charAt(i) — ‘a’; } Tuple tuples[] = new Tuple[N]; for (int step = 1, cnt = 1; step <=
Читать далее…

Теги:

Перевод времени на сервере

Когда мы тестируем нашу систему, часто возникает необходимость в переводе времени на сервере. У нас используются операционные системы Ubuntu и CentOS, поэтому команды будут для них. Ubuntu # Отключаем службу NTP (если она установлена и включена), которая синхронизирует время и помещает вам перевести время sudo timedatectl set-ntp off # Переводим времени, время указывается в формате
Читать далее…

Теги: , ,

Пишем на C++ свою агрегационную функцию для HP Vertica

Предыстория В проекте возникла необходимость отобразить товары, которые поставляются или могут поставляться в определенные регионы Казахстана. У каждого поставщика есть перечень товаров с указанием регионов поставки. Есть таблица товаров, назовем ее product. Регионов в Казахстане всего 17, поэтому я решил хранить данные о регионах поставки в одном числовом поле c помощью битов. Таблица product выглядит
Читать далее…

Оптимизация Grok (Logstash)

Повествование о том, как неэффективный разбор grok забил процессоры на 100%. Немного предыстории. С начала года у нас было настроено расширение к PostgreSQL под названием pg_audit (см. https://github.com/pgaudit/pgaudit) для аудита доступа к таблицам и колонкам таблиц. Логи pg_audit отправляются filebeat’ом в logstash, где разбираются через grok. На тот момент grok-выражение было следующим: %{TIMESTAMP_ISO8601:pg_aud_log_date} %{DATA:pg_aud_time_zone} %{DATA:pg_aud_db_name}
Читать далее…

Просмотр привилегий пользователей к таблицам

Сегодня возникла необходимость просмотреть права доступа всех пользователей. Быстрого и подходящего решения не получилось найти. В итоге нашел пример запроса выводящего привилегии для одной таблицы, а дальше соединил этот запрос с запросом всех таблиц. В итоге получился следующий запрос. select rtg.grantee, rtg.privilege_type, t.table_name from information_schema.tables t join information_schema.role_table_grants rtg ON t.table_name = rtg.table_name order by
Читать далее…

Теги: , ,

Установка PostgreSQL из исходников на Ubuntu 16.04

Склонируйте репозиторий PostgreSQL git clone https://github.com/postgres/postgres.git После окончания загрузки файлов перейдите в созданную директорию cd postgres Переключитесь на ветку REL_10_STABLE git checkout REL_10_STABLE Перед непосредственно сборкой проект нужно установить вспомогательно ПО. sudo apt-get install libreadline-dev sudo apt-get install bison sudo apt-get install flex Сконфигурируйте проект ./configure Соберите проект make Установить postgres sudo make install Переключитесь
Читать далее…

Установка Kubuntu c установочной флешки

Делаем на Kubuntu установочную флешку для установки Kubuntu (простите за тавтологию). Для начала устанавливаем UNetbootin на странице https://unetbootin.github.io/linux_download.html можно его скачать, там же есть инструкция по установке. Вот так выглядит главное окно программы: Записываемый на флешку образ можно скачать либо по сети, либо выбрать iso на вашем компьютере. Первая проблема, которую можно поймать: /dev/sdb1 не
Читать далее…