Search
Write a publication
Pull to refresh
-18
0

Admin Oracle, Linux, AIX, Kafka, devops

Send message

Jitsi Meet: опенсорсная альтернатива «шпионскому» видеоприложению Zoom

Reading time4 min
Views144K
В связи с массовым переходом на удалённую работу приложение для видеоконференций Zoom резко выросло в популярности. Но это не идеальный вариант с точки зрения безопасности. Хотя Zoom предлагает end-to-end шифрование для текстовых чатов, а шифрование видеоконференций можно активировать на стороне хоста, если верить разработчикам проприетарной программы.

Но тип шифрования невозможно проверить, потому что код закрыт, а с точки зрения приватности приложение Zoom вызывает вопросы у некоторых экспертов. Например, хост может активировать странную функцию «трекинг внимания» (attention tracking). Она отслеживает, что участник не отвлекается от совещания больше, чем на 30 секунд (окно приложения должно быть открыто и активно).

Сценарии заражения в конкретных городах на основе датасета передвижения людей по России

Reading time17 min
Views57K

Статистика для Москвы в сценарии «люди стараются сидеть по домам, нет авиасообщения» — к ноябрю модель показывает 5 миллионов переболевших. Это ограниченный прогноз на основе неполных данных, ниже будут детали. За ноль принято 22 марта.

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

Кроме нас.

Туту.ру с радостью делится данными с журналистами уже 16 лет (огромная часть новостей в духе «Заметен аномальный спрос на Анталию» — это нарезка наших информационных витрин). Но мы исторически никогда не раскрывали сами данные по перемещениям людей целыми блоками.

Мы собрали датасет передвижений людей по России за апрель 2019 и передали его в сообщество Open Data Science. Если вы их не знаете — это объединение преимущественно русских дата-сайнтистов (но со всего мира), которое перерабатывает открытые данные на полезные модели. Некоммерчески.

Ниже выводы, таблица с прогнозом по каждому крупному городу, сам датасет (если вы хотите попробовать с ним что-то сделать). Про то, как работает модель и какая математика и ограничения лежат внутри, расскажет ODS через пару часов. И выложит исходники. UPD: вот.
Читать дальше →

Мой набор для автономного выживания во время карантина

Reading time16 min
Views36K

Эта статья посвящена подготовке к автономному выживанию в течение периода карантина. Судя по опыту ЕС и Китая, Украины и Беларуси, не за горами введение карантина из-за пандемии коронавируса Covid-19 и в РФ. Многие это уже поняли и начали заранее запасаться продуктами, средствами защиты органов дыхания, дезинфицирующими средствами и т.п. Не стал исключением и я. Эта статья подытоживает мой опыт в изучении СЗОД (средств защиты органов дыхания), разных режимах и стилях питания, составлении продуктовых раскладок для автономного выживания в течение длительного времени (у меня приличный опыт пеших, водных и горных походов длительностью 2-4 недели с составлением продуктовых раскладок на этот срок), подборе оптимальных продуктов для полноценного питания как по калориям, так и по нутриентам и балансу БЖУ (белки-жиры-углеводы) и в хранении этих продуктов в течение длительного времени. Постараюсь изложить все это простым языком, кратко и не перегружая лишней информацией.

Читать дальше →

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

Reading time2 min
Views84K
Попробую поделиться советом, как можно немного осознать свое состояние и выработать полезный навык. Все написанное основано только на личном опыте, желании им поделится и почерпнуть из обратной связи полезное.
Читать дальше →

MySQL Profiler: простой и удобный инструмент профилирования запросов

Reading time2 min
Views47K
Сегодня был неожиданно удивлен, какие удобные штуки таит в себе MySQL. ;-)

Хочу представить вашему вниманию фичу MySQL — профайлинг.
Появилась она начиная с версии 5.0.37.

Всего парой запросов можно узнать, какими запросами формируется страница (для веб-девелоперов)
и почему она тормозит.

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

Итак, как пользоваться:


Читать дальше →

Ищем причины тормозов БД, используя sys schema в MySQL 5.7

Reading time3 min
Views15K
Есть у нас веб-приложение. Относительно большое и старое — много-много кода, в котором много-много разных запросов к базе данных. При этом мы не гугл, но несколько тысяч запросов в секунду на сервер БД приходится.

Ну и безусловно растёт наше приложение во все стороны — добавляются новые фичи, наворачиваются и усложняются старые, растёт количество клиентов и соответственно количество данных в БД. И в один не очень прекрасный момент приходит понимание, что что-то наше приложение тормозит. А значит надо или найти, что именно нагружает БД, хотя могло бы не нагружать, ну или если ничего такого нет, то взять ещё серверов побольше, да помощнее.

Стандартный совет как найти, что нагружает MySQL — включить slow-query-log и посмотреть, какие запросы будут туда попадать. Но в MySQL 5.7 по умолчанию присутствует куда лучший инструмент — sys schema, которая агрегирует данные из performance schema и позволяет их получить простыми запросами, буквально вида «Ok, MySQL, покажи мне топ запросов по максимальному суммарному времени выполнения»
Читать дальше →

Город и данные: анализ пешеходной доступности объектов в Праге с помощью data science

Reading time12 min
Views4.4K


Несколько лет назад компания Veeam открыла R&D центр в Праге. Изначально у нас был небольшой офис примерно на 40 человек, но компания активно растет, и сейчас, в новом просторном офисе Rustonka нас уже больше двухсот. Veeam нанимает сотрудников не только из Чехии и Евросоюза, но и активно релоцирует успешных кандидатов из России. Многие переезжают вместе с женой и детьми, и вот тут у них возникает вопрос, с которым я и моя семья столкнулись четыре года назад, когда мы впервые оказались в Праге: нам надо было решить, где выбрать жилье, в какой садик будет ходить дочка, и решить множество других проблем, которые возникали по причине полного незнания города. Конечно, можно проверить всё это своими ногами, но мне захотелось подойти к вопросу с инженерной точки зрения и решить эту задачу с помощью дата-сайнс подхода — с помощью анализа данных в открытом доступе определить наиболее благоприятные для проживания районы Праги.


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


Какой район Праги наиболее привлекателен с точки зрения пешеходной доступности инфраструктуры для детей в возрасте от 10 до 16 лет?


Под пешеходной доступностью в своей работе я беру расстояние в 1300 метров. Именно такой порог, согласно различным исследованиям, считается оптимальным для этой возрастной группы.
В качестве объектов инфраструктуры я выбрал такие, которые, по моему мнению, посещает большинство детей. Это школы, библиотеки, образовательные центры, спортивные центры и игровые площадки.

Читать дальше →

Пандас и другие для толстых данных

Reading time5 min
Views13K
В этой заметке я расскажу о паре простых приемов, полезных при работе с данными, не помещающимися в память локальной машины, но все еще слишком мелкими чтобы называться Большими. Следуя англоязычной аналогии (large but not big), будем называть эти данные толстыми. Речь идет о размерах в единицы и десятки гигабайт.

[Дисклеймеръ]Если вы любите SQL все написанное ниже может вызвать в вас яркие, скорее всего, негативные эмоции, в Голландии 49262 Теслы, из них 427 такси, дальше лучше не читайте [/Дисклеймеръ].

image
Читать дальше →

5 малоизвестных секретов Pandas

Reading time5 min
Views20K

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

Для новичков: Pandas — это высокопроизводительный набор инструментов для анализа данных на Python с простыми и удобными структурами данных. Название произошло от понятия «panel data», эконометрического термина, которым называют данные о наблюдениях одних и тех же субъектов в течение разных периодов времени.

Здесь можно скачать Jupyter Notebook с примерами из статьи.
Читать дальше →

Avro serialization в Kafka

Reading time4 min
Views42K

Здесь опишу пример сериализции данных через Avro и передача в Kafka. Для Avro есть сериализатор данных для Kafka, он использует в своей работе реестр (registry) схем и поддерживает версионность на отдельном развернутом сервере. Здесь будет только сериализатор, а версионность если потребуется, то например может быть реализована своя, например в БД.

Читать дальше →

Использование партиционирования в MySQL для Zabbix с большим количеством объектов мониторинга

Reading time7 min
Views12K
Для мониторинга серверов и служб у нас давно, и все еще успешно, используется комбинированное решение на базе Nagios и Munin. Однако эта связка имеет ряд недостатков, поэтому мы, как и многие, активно эксплуатируем Zabbix. В этой статье мы расскажем о том, как минимальными усилиями можно решить проблему с производительностью при увеличении числа снимаемых метрик и росте объемов БД MySQL
Читать дальше →

Почему базы данных NoSQL — плохое решение для современных приложений

Reading time11 min
Views21K
Здравствуйте, Хабр.

Сегодня мы предлагаем вашему вниманию перевод статьи из блога MemSQL, которая исходно является рекламной (посвящена достоинствам MemSQL, обновлена по состоянию на начало января 2020 года). Но мы решили все-таки перевести ее в сокращенном виде, поскольку она подробно объясняет, почему мы пока так и не собрались издавать ничего ни по MongoDB, ни по Cassandra, ни по прочим нереляционным базам данных. Может быть, мы были правы, ограничившись весьма успешной книгой "MySQL по максимуму".
Читать дальше →

Есть ли жизнь после Scratch, или как познакомить ребёнка с Python

Reading time5 min
Views14K
У нас в EPAM работает школа программирования для детей сотрудников — e-kids. В школе волонтёры-сотрудники учат детей работать со Scratch — визуальной средой программирования, созданной специально для обучения детей и подростков. Но всегда рано или поздно наступает момент, когда Scratch уже становится детям не интересен.

Путём проб и ошибок нашим учителям удалось найти способ, как развивать детей дальше, чему учить, чтобы они при этом не потеряли интерес к программированию из-за слишком сложных задач. Так в e-kids стали обучать более сложному языку программирования — Python. В этой статье я собрала полезную информацию от коллег, кто преподает в школе, о том, как детей познакомить c Python.


Читать дальше →

Основы мониторинга PostgreSQL. Алексей Лесовский

Reading time22 min
Views74K

Предлагаю ознакомиться с расшифровкой доклада Алексей Лесовский из Data Egret "Основы мониторинга PostgreSQL"


В этом докладе Алексей Лесовский расскажет о ключевых моментах постгресовой статистики, что они означают, и почему они должны присутствовать в мониторинге; о том, какие графики должны быть в мониторинге, как их добавить и как интерпретировать. Доклад будет полезен администраторам баз данных, системным администраторам и разработчикам, которым интересен траблшутинг Postgres'а.


PostgreSQL 13: параллельный VACUUM

Reading time3 min
Views10K
На днях Амит Капила закоммитил патч Масахико Савады, который позволяет выполнять очистку в параллельном режиме. Сама таблица по-прежнему очищается одним (ведущим) процессом, но для очистки индексов он теперь может запускать фоновые рабочие процессы, по одному на каждый индекс. В ручном режиме это позволяет ускорить очистку больших таблиц с несколькими индексами; автоматическая очистка пока не использует эту возможность.
Некоторые подробности

Знакомство с wal-g системой бекапирования PostgreSQL

Reading time6 min
Views37K

WAL-G — простой и эффективный инструмент для резервного копирования PostgreSQL в облака. По своей основной функциональности он является наследником популярного инструмента WAL-E, но переписанным на Go. Но в WAL-G есть одна важная новая особенность — дельта-копии. Дельта-копии WAL-G хранят страницы файлов, изменившиеся с предыдущей версии резервной копии. В WAL-G реализовано довольно много технологий по распараллеливанию бэкапов. WAL-G работает гораздо быстрее чем, WAL-E.

Читать дальше →

Как работают реляционные базы данных (Часть 1)

Reading time14 min
Views68K

Привет, Хабр! Представляю вашему вниманию перевод статьи
"How does a relational database work".


Когда дело доходит до реляционных баз данных я не могу не думать, что чего-то не хватает. Они используются везде. Существует множество различных баз данных: от небольшого и полезного SQLite до мощной Teradata. Но есть только несколько статей, которые объясняют, как работает база данных. Вы можете искать сами по запросу "howdoesarelationaldatabasework" («как работают реляционные базы данных») чтобы увидеть, как мало результатов. Более того, эти статьи — короткие. Если же вы ищете последние модные технологии (BigData, NoSQL или JavaScript), вы найдете больше углубленных статей, объясняющих, как они работают.


Являются ли реляционные базы данных слишком старыми и слишком скучными, чтобы их можно было объяснить вне университетских курсов, исследовательских работ и книг?


image

Читать дальше →

DBA: находим бесполезные индексы

Reading time12 min
Views23K
Регулярно сталкиваюсь с ситуацией, когда многие разработчики искренне полагают, что индекс в PostgreSQL — это такой швейцарский нож, который универсально помогает с любой проблемой производительности запроса. Достаточно добавить какой-нибудь новый индекс на таблицу или включить поле куда-нибудь в уже существующий, а дальше (магия-магия!) все запросы будут эффективно таким индексом пользоваться.

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

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

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

  • неиспользуемые индексы
  • префиксные «клоны»
  • timestamp «в середине»
  • индексируемый boolean
  • массивы в индексе
  • NULL-мусор
Читать дальше →

Делаем быстрее POSTGRESQL COUNT (*)

Reading time4 min
Views61K


Часто жалуются, что count (*) в PostgreSQL очень медленный.

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

Почему count (*) такой медленный?


Большинство людей без проблем понимают, что следующий запрос будет выполняться медленно:

SELECT count(*)
FROM /* сложный запрос */;

В конце концов, это сложный запрос, и PostgreSQL должен вычислить результат, прежде чем узнает, сколько строк он будет содержать.

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

SELECT count(*) FROM large_table;

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

Поэтому count (*) обычно выполняет последовательное сканирование таблицы, что может быть довольно дорого.
Читать дальше →

Простое обнаружение проблем производительности в PostgreSQL

Reading time5 min
Views70K
Существует ли в мире очень большая и крупная база данных, которая время от времени не страдает от проблем с производительностью? Держу пари, что их не так уж много. Поэтому каждый DBA (администратор базы данных), отвечающий за PostgreSQL, должен знать, как отслеживать потенциальные проблемы производительности, чтобы выяснить, что на самом деле происходит.

Повышение производительности PostgreSQL после настройки параметров


Многие думают, что изменение параметров в postgresql.conf — это реальный путь к успеху. Однако это не всегда так. Конечно, чаще всего хорошие параметры конфигурации базы данных очень полезны. Тем не менее, во многих случаях реальные проблемы будут возникать из-за странного запроса, скрытого глубоко в некоторой логике приложения. Даже вполне вероятно, что запросы, вызывающие реальные проблемы, не являются теми, на которые вы обратили внимание. Возникает естественный вопрос: как мы можем отследить эти запросы и выяснить, что на самом деле происходит? Мой любимый инструмент для этого — pg_stat_statements, который всегда должен быть включен по моему мнению, если вы используете PostgreSQL 9.2 или выше (пожалуйста, не используйте его в более старых версиях).
Читать дальше →

Information

Rating
Does not participate
Registered
Activity