Как стать автором
Обновить
2
0

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

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

Графы в Python: введение и знакомство с лучшими библиотеками

Время на прочтение11 мин
Количество просмотров49K

Граф – это математическая структура данных, представляющая собой множество связанных элементов. Поскольку графы, по своей сути, являются очень гибкими и позволяют сохранять информацию в знакомой и удобной для восприятия форме, они всегда активно использовались в компьютерной науке и сфере технологий. С появлением же машинного и глубокого обучения, графы обрели ещё бо́льшую популярность, создав новое направление — машинное обучение на графах.

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

  • NetworkX для общего анализа графов;
  • PyVis для интерактивной визуализации графов прямо в браузере;
  • PyG и DGL для решения различных задач в области машинного обучения на графах.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+34
Комментарии0

Как мы обновили старый кластер Elasticsearch на 3 ПБ без простоев. Часть 4 — токенизация и нормализация

Время на прочтение7 мин
Количество просмотров1.9K

Прим. переводчика: автор статьи рассказывает, как его команде удалось оптимизировать временные и ресурсные затраты при токенизации текстов в Elasticsearch путем внедрения нормализации похожих символов.

Это четвертая часть серии статей об обновлении кластера Elasticsearch без простоев и с минимальным воздействием на пользователей.

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

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии0

Как мы обновили старый кластер Elasticsearch на 3 ПБ без простоев. Часть 3 — поиск и подстановочные знаки

Время на прочтение10 мин
Количество просмотров1.9K

Прим. переводчика: автор статьи рассказывает, с какими трудностями его команда столкнулась при настройке нового кластера. Среди них — проблема с низкой производительностью поиска по подстановочным знакам.

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

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии1

(Микро)фронтенды и микросервисы с помощью Webpack

Время на прочтение8 мин
Количество просмотров10K

Привет! Меня зовут Максим, я фронтенд-разработчик компании Тинькофф, лид команды фронтендов, которые пилят международные проекты. Я работал как фронтом, так и бэкером — это дало мне релевантный опыт и в микрофронтендах в том числе.

Статья будет о фронтендах, но сначала предлагаю немного обсудить монолиты. Они бывают разные.

Читать далее
Всего голосов 22: ↑21 и ↓1+22
Комментарии30

Двухсторонние очереди в Python: как альтернатива спискам повышает производительность

Время на прочтение4 мин
Количество просмотров14K


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

В некоторых приложениях необходима обработка данных по методу FIFO (first-in, first-out). Он подразумевает, что элементы, добавленные в последовательность первыми (first-in), будут первыми из неë удалены (first-out). Эту задачу можно решить и с помощью объекта «список», и с помощью двухсторонних очередей. Но для этой цели двухсторонние очереди удобнее списков благодаря особенностям их реализации. 
Читать дальше →
Всего голосов 33: ↑30 и ↓3+38
Комментарии6

Полезные ресурсы для погружения в Go: выбор сотрудников Selectel

Время на прочтение4 мин
Количество просмотров18K

Попросили коллег порекомендовать ресурсы — подкасты, ютуб-каналы, книги, блоги и GitHub-репозитории — для изучения языка программирования Go. Сохраняйте подборку в закладки: пригодится и начинающим, и опытным специалистам. А также делитесь своими вариантами в комментариях.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+44
Комментарии4

Как мы обновили старый кластер Elasticsearch на 3 ПБ без простоев. Часть 1 — введение

Время на прочтение6 мин
Количество просмотров5.6K

Прим. переводчика: автор статьи рассказывает о причинах, побудивших его команду обновить кластер Elasticsearch размером более 3 петабайт, и приводит результаты замеров работоспособности нового кластера в сравнении со старым.

Еще в 2018 году, то есть пять лет назад, в нашем блоге был опубликован пост с описанием нашего кластера Elasticsearch на 400+ узлов. Тогда была затронута важная тема:

Мы решили не обновлять кластер. Хотелось бы, но пока есть более срочные задачи. Да и как именно будет происходить обновление, пока не решено. Один из вариантов — создать новый кластер, а не обновлять старый.

Что ж, долгожданный день обновления, наконец, наступил.

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии6

Полное руководство по модулю asyncio в Python. Часть 1

Время на прочтение11 мин
Количество просмотров132K

Python-модуль asyncio позволяет заниматься асинхронным программированием с применением конкурентного выполнения кода, основанного на корутинах. Хотя этот модуль имеется в Python уже много лет, он остаётся одним из самых интересных механизмов языка. Но asyncio, при этом, можно назвать ещё и одним из модулей, которые вызывают больше всего недоразумений. Дело в том, что начинающим разработчикам бывает трудно приступить к использованию asyncio.

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее
Всего голосов 21: ↑19 и ↓2+27
Комментарии8

ТОП-10 онлайн-ресурсов для прокачки навыков фронтендера

Время на прочтение3 мин
Количество просмотров19K

Привет, Хабр! Я Лена Райан, фронтенд разработчик в Х5 Tech. Решила поделиться с вами подборкой ТОП-10 проверенных зачётных онлайн-ресурсов по фронтенду, которые будут полезны как новичкам, так и желающим подтянуть свои знания по этой теме. Подборка подойдёт также тем, кто только недавно пришёл в IT или в профессию фронтендера и хочет понять, с какой базы им начать.

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии8

Процесс рендеринга Vue

Время на прочтение10 мин
Количество просмотров7.4K

Добрый день! Меня зовут Александр, я работаю frontend-разработчиком в компании Nord Clan. В прошлой статье мы рассмотрели процесс компиляции Vue, а теперь надо как-то «пристроить» результат этой самой компиляции в процесс рендеринга.

Дизайн лого: Марина Четвертакова

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Учимся создавать пакеты Python

Время на прочтение8 мин
Количество просмотров46K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →
Всего голосов 20: ↑18 и ↓2+24
Комментарии14

Игровой real-time сервер простыми словами: теория, архитектура на Python, оптимизация, автомасштабирование в AWS

Время на прочтение20 мин
Количество просмотров24K

Разработка сервера для real-time онлайн игры - дело неочевидное, но очень интересное. В данной статье я постараюсь провести вас от банальной теории и базовых вещей до динамического автомасштабирования игрового сервера в облаке.

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

Перейти к материалу
Всего голосов 19: ↑17 и ↓2+19
Комментарии33

Как работает автозаполнение в браузерах и что важно учитывать веб-разработчику

Время на прочтение14 мин
Количество просмотров31K

Если человек пользуется автозаполнением в браузере, он ждёт, что сможет быстро заполнять формы на любом сайте, где посчитает нужным. Наладить такой механизм на стороне сайта или веб-приложения несложно, но важно помнить пару вещей — я покажу кейсы, где подходы «в лоб» приводили к непредсказуемым результатам. Чтобы автозаполнение работало эффективно и не нарушало логику, стоит хотя бы примерно представлять, как оно устроено под капотом разных браузеров, которые могут быть у пользователей. Под катом распишу, каким образом движок подставляет данные в формы.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+35
Комментарии3

Самый полный стартовый гайд по ботам Telegram (python)

Время на прочтение5 мин
Количество просмотров263K

QQ Хабр! В этом гайде мы пройдемся по каждому шагу создания ботов в Telegram - от регистрации бота до публикации репозитория на GitHub. Некоторым может показаться, что все разжевано и слишком много элементарной информации, но этот гайд создан для новичков, хотя будет интересен и для тех, кто уже занимался разработкой в Telegram. Сегодня мы будем делать бота, который отвечает на заданные вопросы.

Читать далее
Всего голосов 29: ↑16 и ↓13+8
Комментарии23

Рассуждения об asyncio.Semaphore

Время на прочтение6 мин
Количество просмотров8.4K

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

Сегодня, правда, мы не собираемся говорить о кулинарных изысках. Мы говорим о системе очередей, которую используют рестораны. Если вам повезло и вы прибыли в ресторан тогда, когда столик пуст, и когда никого в очереди нет, вы можете прямо сразу за него сеть. В противном случае хозяин даст вам специальный пейджер (из бескрайней кучи таких пейджеров!) и вы можете бродить вокруг ресторана до тех пор, пока этот пейджер не подаст сигнал. Дело хозяина ресторана — обеспечить, чтобы посетители попадали бы за столик в порядке их прибытия. Когда настанет ваша очередь, хозяин отправит сигнал на ваш пейджер, а вы вернётесь в ресторан, где сможете усесться за столик.

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

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии2

Личный сервер shadowsocks за 10 минут без затрат (часть 3)

Время на прочтение3 мин
Количество просмотров157K

Это - отдельное руководство, описывающее ещё один способ получить личный
прокси-сервер shadowsocks бесплатно и служащее продолжением к моей предыдущей статье. В этот раз мы воспользуемся сервисом Replit.

В этот раз всё будет намного проще: регистрация, импорт, запуск. Три шага.

Читать далее
Всего голосов 23: ↑20 и ↓3+19
Комментарии55

Очередь недоставленных сообщений для обработки ошибок в Apache Kafka

Время на прочтение12 мин
Количество просмотров18K

Любому надёжному конвейеру потоковой обработки данных нужны механизмы обнаружения и обработки ошибок. В этой статье вы узнаете, как реализовать обработку ошибок с помощью очереди недоставленных сообщений (Dead Letter Queue) в инфраструктуре Apache Kafka.

Мы рассмотрим несколько вариантов: кастомная реализация, Kafka Streams, Kafka Connect, Spring Framework и Parallel Consumer. Вы увидите, как Uber, CrowdStrike и Santander Bank реализуют надёжные механизмы обработки ошибок в реальном времени и в огромном масштабе.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии2

История о том как я переехал в США и искал тут работу. Офферы от MAANG и не только

Время на прочтение10 мин
Количество просмотров25K

В феврале 2022 года я наконец переехал в США по рабочей визе О1. Этому предшествовало 2.5 года работы над укреплением кейса, ожидание аппрува.

За 1.5 года до этой даты я начал готовиться к интервью на позицию Front End. Сейчас работаю Senior Front-End Engineer в Roku.

Мотивацией для данного поста и создания телеграмм канала по интервью Front-End инженеров стало отсутсвие подробной информации о том, как же выглядит этот процесс в США.

Читать далее
Всего голосов 33: ↑29 и ↓4+33
Комментарии25

Bitmap indexes in Go: unbelievable search speed

Время на прочтение12 мин
Количество просмотров18K
My name is Marko and I gave a talk at Gophercon Russia this year about a very interesting kind of indexes called «bitmap indexes». I wanted to share it with the community, not only in video format, but as an article too. It's an English version and you can read Russian here. Please enjoy!


Всего голосов 31: ↑30 и ↓1+29
Комментарии0

Как хранить сеть дорог в БД для построения маршрута?

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров19K

Японцы уже в 2018 году научили немецкий GraphHopper строить маршруты по дорогам хранящимся в PostgreSQL.

Как кастомизировать источник данных, и сохранять новые дороги в таблицу правильно?

Надо всего лишь...
Всего голосов 29: ↑29 и ↓0+29
Комментарии18

Информация

В рейтинге
4 643-й
Зарегистрирован
Активность