Pull to refresh
10
0

Разработчик приложений баз данных, DBA

Send message

Как быстро писать в Apache Ignite

Reading time 13 min
Views 7.6K


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

Чтобы достичь такого результата, компания должна быть очень технологичной, очень надежной и очень быстрой. Поэтому более 50% штата Биржи – айтишники, работающие с передовым набором технологий, уровень надежности наших ИТ-систем стабильно составляет 99,99%, а еще мы постоянно разгоняем наши системы и процессы. Об одном из примеров такого ускорения рассказывает Григорий Доможиров, разработчик сервиса Data Grid.

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

Каким должно быть хранилище, чтобы выдерживать такие скорости? Во-первых In-memory, чтобы не тормозить о диск, во-вторых, – распределённым, чтобы распараллеливать запись. Такой класс решений называется In-Memory Data Grid, и яркий его представитель — Apache Ignite. Но просто установить его мало – чтобы добиться от него максимальной производительности, нужно правильно его «приготовить». И сейчас я расскажу, как.

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 3

Flink для самых маленьких

Reading time 12 min
Views 24K

Привет! Меня зовут Юля, я работаю в дирекции больших данных Билайн, недавно я познакомилась с фреймворком Flink и хочу рассказать о своих впечатлениях на примере простой с первого взгляда задачи.

Итак, что же такое Flink? 

Apache Flink – это фреймворк и движок для statefull вычислений над неограниченными и ограниченными потоками данных. Flink был разработан для работы во всех распространенных кластерных средах, выполняя вычисления с in-memory скоростью на любом масштабе данных.

Из основных моментов можно подчеркнуть: 

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 1

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficulty Easy
Reading time 12 min
Views 439K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Total votes 39: ↑37 and ↓2 +35
Comments 38

Как синхронизировать сотни таблиц базы в Kafka, не написав ни одного продюсера

Reading time 18 min
Views 31K


Привет, Хабр! Меня зовут Сергей Бевзенко, я ведущий разработчик Delivery Club в команде Discovery. Наша команда занимается навигацией пользователя по приложению Delivery Club: мы отвечаем за основную выдачу ресторанов, поиск и всё, что с этим связано.

Я расскажу про Kafka Connect: что это такое, какова общая концепция и как работать с этим фреймворком. Это будет полезно тем, кто использует Kafka, но не знаком с Kafka Connect. Если у вас огромный монолит и вы хотите перейти на событийную модель, но сталкиваетесь со сложностью написания продюсеров, то вы тоже найдёте здесь ответы на свои вопросы. В комментариях можем сравнить ваш опыт использования Kafka Connect с нашим и обсудить любые вопросы, которые с этим связаны.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 10

Единственный способ полноценного контроля скорости на горных лыжах и сноуборде. Физика

Reading time 5 min
Views 38K

В арсенале горнолыжника и сноубордиста есть всего два способа контроля скорости - удлинение траектории и проскальзывание.

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

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

Единственный способ полноценного контроля
Total votes 51: ↑39 and ↓12 +27
Comments 79

70+ бесплатных инструментов для компьютерной криминалистики (форензики)

Reading time 8 min
Views 37K

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

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

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

Читать далее
Total votes 37: ↑36 and ↓1 +35
Comments 2

Тюнинг производительности запросов в PostgreSQL

Reading time 8 min
Views 29K
Настройка производительности базы данных — разработчики обычно либо любят это, либо ненавидят. Я получаю удовольствие от этого и хочу поделиться некоторыми методами, которые я использовал в последнее время для настройки плохо выполняющихся запросов в PostgreSQL. Мои методы не является исчерпывающими, скорее учебником для тех, кто просто тащится от тюнинга.

Поиск медленных запросов


Первый очевидный способ начать тюнинг — это найти конкретные операторы, которые работают плохо.

pg_stats_statements


Модуль pg_stats_statements — отличное место для начала. Он просто отслеживает статистику выполнения операторов SQL и может быть простым способом поиска неэффективных запросов.

Как только вы установили этот модуль, системное представление с именем pg_stat_statements будет доступно со всеми своими свойствами. Как только у него будет возможность собрать достаточный объем данных, ищите запросы, которые имеют относительно высокое значение total_time. Сначала сфокусируйтесь на этих операторах.

SELECT *
FROM
  pg_stat_statements
ORDER BY
  total_time DESC;

user_id dbid queryid query calls total_time
16384 16385 2948 SELECT address_1 FROM addresses a INNER JOIN people p ON a.person_id = p.id WHERE a.state = @state_abbrev; 39483 15224.670
16384 16385 924 SELECT person_id FROM people WHERE name = name; 26483 12225.670
16384 16385 395 SELECT _ FROM orders WHERE EXISTS (select _ from products where is_featured = true) 18583 224.67

Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 7

Личный опыт: переход с низкоуровневой разработки на C к программированию на Java

Reading time 26 min
Views 26K


Статья отражает личный опыт автора – заядлого программиста микроконтроллеров, которому после многолетнего опыта микроконтроллерной разработки на языке С (и немного на С++) довелось участвовать в крупном Java-проекте по разработке ПО для ТВ-приставок под управлением Android. В ходе этого проекта удалось собрать заметки об интересных различиях языков Java и C/C++, оценить разные подходы к написанию программ. Статья не претендует на роль справочника, в ней не рассматривается эффективность и производительность Java-программ. Это скорее сборник личных наблюдений. Если не указано иное, то речь идет о версии Java SE 7.
Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 17

Олимпиада SQL: разбор задачи про календарь

Reading time 9 min
Views 23K

Здравствуйте, в эфире Радио SQL!


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


Настраивайтесь на нашу гравитационную волну, смахивайте слизь, поправляйте панцири и устраивайтесь поудобнее — мы начинаем!..


В этой статье я собираюсь провести разбор задачи про календарь, которую я давал на Олимпиаде по SQL, про которую я уже писал раньше. Захватывающая рекурсия и загадочные агрегатные функции, вложенные запросы и вооружённые группировки данных — всё это нас ждёт сегодня!


Обращаю внимание, что это именно разбор, а не готовое решение. Чтобы избежать тупого copy-paste, я намерено предприму пару действий, которые позволят получить готовый результат только тем, кто немного поработает головой.

Забор раздачи здесь
Total votes 23: ↑22 and ↓1 +21
Comments 35

Figma — делаем дизайн системно

Reading time 3 min
Views 90K
image

Приветствую вас коллеги! Меня зовут Дмитрий Волков и я работаю в профессии больше десяти лет. Решил написать статью для тех, кто создает web и mobile дизайн в современных программах.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 18

Дистанционное управление системой отопления

Reading time 14 min
Views 32K
Интернет вещей (IoT, Internet of Things) является многообещающим направлением, как уверяют аналитики. Одним из главных трендов IoT является автоматизация жилья или, как любят выражаться маркетологи, создание «умного дома».

Оставим в покое словесные упражнения и рассмотрим конкретный проект.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 72

Как заставить государство открываться, ч.1: Качаем статистику ДТП своими руками

Reading time 8 min
Views 36K
Если хорошо поискать, можно обнаружить довольно много полезной, приличного качества, государственной информации. Но к сожалению, это все еще не: ЕГЭ и образование, погода, картография, данные о преступлениях… и ДТП.

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

Эта статья станет первым мануалом в серии «как получать машиночитаемые данные с госсайтов». Итак, сегодня — про статистику ДТП, а раз государство нам ее не дает, мы научимся забирать ее самостоятельно. По традиции, код и данные — прилагаются.


Читать дальше →
Total votes 61: ↑57 and ↓4 +53
Comments 42

Используем Apple Pay и карту Тройка в качестве пропуска на работу

Reading time 16 min
Views 105K
Используем Apple Pay, Android Pay, Mastercard Paypass, Visa PayWave и карту Тройка в качестве пропуска на работу

TL;DR В статье описывается процесс создания системы контроля доступа (СКУД), в которой в качестве идентификатора могут использоваться карты Тройка, любые бесконтактные банковские карты EMV, а также телефоны с Apple Pay и Android Pay. Управление системой происходит через Telegram-бота.

Основные задачи системы


  • Избавиться от лишних карт — в качестве идентификатора используется то, что уже есть у пользователя: транспортная карта, телефон или банковская карта. Какой идентификатор использовать — каждый выбирает сам. Система работает со всеми типами идентификаторов одновременно.
  • Избавиться от бюро пропусков и сложных программ управления — нам надоело выдавать и забирать карты у пользователей, держать отдельные компьютеры для управления пропусками, изучать переусложненные программы.
  • Управление через Telegram — заведение и удаления пользователей происходит удаленно и не требует компьютера.
Total votes 118: ↑118 and ↓0 +118
Comments 164

«T-commerce»: как работают онлайн-продажи через Telegram

Reading time 6 min
Views 40K

Прошлым летом Telegram выпустил новый API с поддержкой платежей. С тех пор мессенджер стал еще и каналом продаж, который позволяет компаниям не только общаться с клиентом, но и принимать оплату за свои товары и услуги прямо в диалоговом окне. Яндекс.Касса первой среди российских платежных сервисов поддержала эту функцию. Принимать платежи в Telegram через Кассу сразу стали индивидуальные предприниматели и небольшие организации: флористы, магазины чая и кофе, тренеры, организаторы обучающих курсов, благотворительные фонды и многие другие (тут можно почитать отзывы и примеры). Но для более крупных компаний с потоком заказов был один стоппер.


Дело в том, что до недавних пор у Telegram-продаж была одна особенность, не учитывающая чисто российскую специфику электронной торговли, — обязательную отправку онлайн-чеков (требование 54-ФЗ, известного как закон об онлайн-кассах). У Яндекс.Кассы сразу появился специальный протокол, который поддерживал работу с новым кассовым оборудованием и автоматизировал передачу чеков. Но в Telegram такая автоматизация технически не поддерживалась, и продавцы должны были настраивать передачу чеков сами (считайте, плясать с бубном). И вот недавно мессенджер пошел навстречу российскому рынку электронной коммерции и реализовал с Яндекс.Кассой совместный проект, дополнив свой протокол важным элементом — появилось специальное поле для дополнительной информации платежному провайдеру. Теперь продавать через Telegram стало удобно с точки зрения не только клиентского сервиса, но и автоматизации передачи онлайн-чеков (то есть соблюдения 54-ФЗ). Под катом расскажу, что нужно сделать, чтобы запустить продажи в Telegram, принимая платежи через Яндекс.Кассу.

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 5

#PostgreSQL. Ускоряем деплой в семь раз с помощью «многопоточки»

Reading time 11 min
Views 17K
Всем привет! Мы на проекте ГИС ЖКХ используем PostgreSQL и недавно столкнулись с проблемой долгого выполнения SQL скриптов из-за быстрого увеличения объема данных в БД. В феврале 2018 года на PGConf я рассказал, как мы решали эту проблему. Слайды презентации доступны на сайте конференции. Предлагаю вашему вниманию текст моего выступления.


Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 13

FFMPEG. Загружаем часть видео с YouTube

Reading time 2 min
Views 30K

Иногда мы хотим поделиться с друзьями частью какого то видео на YouTube — время концентрации внимания в современной реальности снижено до предела, и если скидывать ссылку на ролик(даже с таймкодом начала) с комментарием «смотреть с 21:51 по 24:55» — велика вероятность, что видео просмотрено не будет.

Кроме того — куски видео могут потребоваться для монтажа своих роликов — и довольно неудобно скачивать ради нескольких секунд весь ролик и искать/вырезать нужную часть в программе для монтажа.

Как загружать часть видео YouTube при помощи ffmpeg — под катом
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 20

Сенсационные военные технологии для космонавтики будущего

Reading time 4 min
Views 64K
Во вчерашнем послании Федеральному Собранию Владимир Путин обнародовал сенсационную информацию о российских военных проектах. И самое замечательное в них то, что, помимо решения сегодняшней задачи предотвращения ядерного конфликта, реализованные технологии могут очень серьезно помочь космонавтике будущего.


Ту-22М3М с ракетами Х-32, фото interpolit.ru
Total votes 124: ↑80 and ↓44 +36
Comments 1068

Веб-приложение на Node и Vue, часть 5: завершение работы над проектом

Reading time 32 min
Views 13K
Перед вами перевод пятой части руководства по разработке веб-решений на базе Node.js, Vue.js и MongoDB. В первой, второй, третьей и четвёртой частях мы рассказывали о поэтапном создании клиентской и серверной частей приложения Budget Manager. Те, кому не терпится увидеть в действии то, что в итоге получилось у автора этого материала, могут заглянуть сюда. Кроме того, вот GitHub-репозиторий проекта. Если вы — из тех, кто ценит строгую типизацию, то здесь и здесь находятся результаты переноса Budget Manager на TypeScript.



Сегодня работа над этим учебным проектом завершится. А именно, в данном материале пойдёт речь о разработке страниц по добавлению в систему записей о новых клиентах и финансовых документах, а также о создании механизмов для редактирования этих данных. Здесь же мы рассмотрим некоторые улучшения API и доведём Budget Manager до рабочего состояния.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 1

Эксплуатация зданий: что будет, если один раз подойти с умом

Reading time 7 min
Views 18K
Карточка оборудования на модели здания — к ней прикреплены работы, затраты по единице железа, все документы (договоры, гарантия и пр.), инструкции и регламенты.

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

И все расчёты дальше идут лесом. Звучит дико, но так почти на каждом объекте.

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

Естественно, BIM-приложения дают много и в том случае, если здание уже построено и надо эксплуатировать рациональнее. Да, бывает, что модели нет (а иногда даже и простой 2D-документации), но все эти проблемы решаемы. Мы же в будущем, чёрт побери, тут всё продумано!
Читать дальше →
Total votes 32: ↑32 and ↓0 +32
Comments 7

Information

Rating
5,062-nd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity