Pull to refresh
12
0
Никита @Xokare

Питонист. Специалист по инфобезу

Send message

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views168K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Total votes 336: ↑324 and ↓12+411
Comments300

Wagtail — лучшая CMS на python в нашей галактике

Reading time5 min
Views36K

Очень абстрактное описание, что такое Wagtail CMS и почему с ней стоит познакомиться разработчикам на Django. Вкратце, Wagtail позволяет в кратчайшие сроки сделать сложные проекты, CMS активно развивается, ее поддерживают настоящие профи.

Читать далее
Total votes 10: ↑9 and ↓1+9
Comments11

Как отобразить таблицу на экране мобильного устройства: решения

Reading time2 min
Views22K

В данной статье мы рассмотрим какие существуют решения по отображению таблиц с большими массивами данных на экранах мобильных устройств.

Читать далее
Total votes 51: ↑50 and ↓1+59
Comments17

10 итераторов, о которых вы могли не знать

Reading time13 min
Views35K

Одним из главных достоинств Python является выразительность кода. Не последнюю роль в этом играет возможность удобной работы с коллекциями и последовательностями различного вида: перебор элементов списка по одному, чтение файла по строкам, обработка всех ключей и значений в словаре. Эти и многие другие подобные задачи в Python помогает решить так называемый протокол итераторов (Iterator protocol). Именно этот протокол обеспечивает работу цикла for, устанавливает по каким объектам можно итерироваться, а по каким нет. Как мы увидим далее, сам язык и стандартная библиотека очень широко используют возможности протокола. В этой статье попробуем отыскать не самые известные, но от этого не менее интересные примеры итераторов и итерируемых объектов, которые предлагает Python.

Читать далее
Total votes 43: ↑40 and ↓3+43
Comments18

Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

Reading time8 min
Views7K

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам.

Читать далее
Total votes 24: ↑23 and ↓1+27
Comments16

Проектируем процессор постапокалипсиса с помощью openSource

Reading time12 min
Views21K

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

В прошлый раз в статье «Пневмоника и влажные мечты стимпанка» я уже рассказывал о струйных логических элементах и поделился мыслями о том, что в принципе на этой технологии можно собрать полноценное вычислительное устройство.
Читать дальше →
Total votes 156: ↑156 and ↓0+156
Comments70

React, я люблю тебя, но ты сводишь меня с ума

Reading time13 min
Views19K


Привет, друзья!


Представляю вашему вниманию перевод этой статьи, вызывавшей определенный резонанс в сообществе React-разработчиков.


Дорогой React, мы встречаемся уже почти 10 лет. Мы прошли долгий путь вместе. Но ситуация вышла из-под контроля. Нам нужно поговорить.

Читать дальше →
Total votes 34: ↑31 and ↓3+34
Comments35

Как перестать велосипедить или 4 self-hosted сервиса для начинающего СТО

Reading time3 min
Views16K

Я знаю многое о велосипедах в Enterprise-разработке. Видел издали, катался на них, собирал сам, но наступают моменты, когда типичные задачи пора перевести на типичные решения. В статье расскажу о 4 self-hosted сервисах, которые освобождают уйму времени на действительно важные вещи.

Слезть с велосипеда
Total votes 30: ↑29 and ↓1+32
Comments5

Исправление опечаток, взгляд сбоку

Reading time7 min
Views10K
Мы поговорим об использовании модных «Word embedding» не совсем по назначению — а именно для исправления опечаток (строго говоря, и ошибок тоже, но мы предполагаем, что люди грамотные и опечатываются). На хабре была довольно близкая статья, но здесь будет немного о другом.


Визуализация Word2Vec модели, полученная студентом. Обучалась на «Властелине колец». Явно что-то на черном наречии.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments4

Такие «джуны» нам не нужны

Reading time5 min
Views168K

Не так давно наткнулся на статью в журнале Forbes. Основной ее посыл - молодым ИТ-специалистам все сложнее найти работу. Если раньше на это требовалось один-три месяца, то сейчас полгода и больше. Что тут скажешь, джун джуну рознь.

Читать далее
Total votes 126: ↑107 and ↓19+109
Comments347

Подборка фильмов и сериалов об OSINT

Reading time9 min
Views12K

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

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

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments2

Обкафкился по полной: 3 фейла с Apache Kafka

Reading time6 min
Views22K

Недавно мы проводили вебинар «Обкафкился по полной. Фейлы с Apache Kafka». На нём спикер Всеволод Севостьянов, Engineering Manager в HelloFresh, поделился фейлами из личной практики, а ещё рассказал, как мастерски ходить по тонкому льду Kafka и прокачать свой бэкенд. Для тех, кто пропустил или предпочитает читать, а не смотреть, подготовили текстовый вариант.

Читать далее
Total votes 28: ↑26 and ↓2+27
Comments27

Почему KRaft заменил ZooKeeper

Reading time12 min
Views18K

Зачем менять ZooKeeper на встроенный лог Apache Kafka® для управления метаданными? В этой статье вы узнаете, зачем нужна была эта замена, какие преимущества даёт протокол консенсуса на основе кворума, вроде Raft, и как работает контроллер кворума поверх протоколов KRaft.

Читать далее
Total votes 17: ↑16 and ↓1+19
Comments0

Как ускорить работу PostgreSQL с помощью конфигурации базы и оптимизации запросов

Reading time12 min
Views43K

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

Администратор баз данных в Southbridge и ведущий инженер компании Data Driven Lab Иван Чувашов занимается базами данных 15 лет и сегодня хочет поговорить про оптимизацию запросов. Разбирать все будет на примере PostgreSQL, так как именно с этой базой он сейчас работает плотнее всего.

Эта статья — конспект бесплатного вебинара об оптимизации PostgreSQL от «Слёрма». Если вам удобнее смотреть, а не читать, переходите на YouTube.

Читать далее
Total votes 16: ↑14 and ↓2+15
Comments13

Суффиксное дерево на python

Level of difficultyMedium
Reading time10 min
Views12K

Суффиксное дерево (Suffix Tree, ST) – это структура данных, которая позволяет "проиндексировать" строку за линейное время от её длины, чтобы потом быстро находить подстроки (за время О(длина искомой подстроки)).

Тема построения Suffix Tree и его применения хорошо раскрыта в Интернет (википедия, статья на хабр про алгоритм Вейнера, язык Си, и статья на хабр про алгоритм Укконена). Но всегда есть соблазн поучаствовать в соревновании "написать проще и яснее", хотя шансов мало. Тем не менее, рискну.

Несмотря на сложность, алгоритм построения ST умещается в 35 строк на python (см. ниже метод _build_tree). Их буквально можно выучить и воспроизводить по памяти как некое произведение искусства, как воплощенный в набор символов труд человеческой мысли, причём не одного человека, и первые из них точно гении. :) Есть соблазн, всматриваясь в код, прикоснуться к великому и чему-то научиться.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments5

Как работает неточное сравнение строк

Reading time7 min
Views28K

https://fakt309.github.io/thisisthewall/

В языках программирования строки сравниваются очень просто, если строка отличается хотя бы на один символ, то возвращает false.

Но вот что если мы хотим не просто получать дискретное значение (true / false), а дифференцированное, например в процентах. Ведь согласитесь строки test и testing гораздо ближе к друг другу, чем test и abcd. Для данной проблемы существует множество решений, мы поговорим о самый популярных алгоритмах (также об их модификациях):

Расстояние Хэмминга

Расстояние Левенштейна

Сходство Джаро — Винклера

Коэффициент Сёренсена

Читать далее
Total votes 45: ↑42 and ↓3+44
Comments43

Асинхронный python без головной боли (часть 1)

Reading time14 min
Views314K

Почему так сложно понять asyncio?

Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности.

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку
Total votes 135: ↑135 and ↓0+135
Comments58

Сравнение алгоритмов детекции лиц

Reading time3 min
Views18K

Привет, Хабр! Очень часто я на просторах интернета натыкаюсь на такой вопрос: «А какое готовое решение по детекции лиц лучше всего использовать?» Так вот, я отобрал 5 решений с Github, которые показались мне хорошими, относительно новыми и лёгкими в использовании, и хотел бы сравнить их между собой. Всем, кому интересно, что из этого вышло, добро пожаловать под кат!

Читать далее
Total votes 15: ↑14 and ↓1+17
Comments13

ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников в XML и JSON бесплатно

Reading time7 min
Views36K

Налоговая отдаёт данные ЕГРЮЛ  по организации в виде PDF. Посредники за автоматический доступ по API хотят денег. На многих сайтах часть данных закрыто, часть функций недоступны бесплатно, и полно рекламы. 

Особенно интересно, что на некоторых сайтах предоставляющих данные по API имеется логотип Сколково. Это такой высокотехнологический бизнес, наверное, открытые данные продавать.

Налоговая просит 150 000 рублей в год за доступ к данным ЕГРЮЛ в виде сваленных в архивы XML-файлов. У ФНС классный бизнес. Вы проявляйте должную осмотрительность при выборе поставщиков, но доступ к данным за деньги. Если вы хотите получить доступ и к реестру индивидуальных предпринимателей (ЕГРИП), то платите ещё 150 000 рублей в год. Согласитесь 300 000 рублей в год приличная сумма.

Остальные реестры данных у налоговой доступны бесплатно. Однако, без базы ЕГРЮЛ их вряд ли можно использовать. Самая частая операция в бизнесе подставить реквизиты из ЕГРЮЛ по ИНН.

Сформировалась целая отрасль, можно сказать, торговцев воздухом открытыми данными, создающих ВВП из воздуха как бухгалтеры, работающие руками там, где должны работать программы. Сколько компаний платит налоговой по 300 000р. в год?! Сколько программистов занято написанием одинаковых по функциям парсеров, которые переводят данные из XML налоговой в SQL и JSON?! Сколько серверов заняты под одинаковые функции?! Где добавочная стоимость? Все вроде при деле, а за чей счёт банкет?

Ну, ладно, “скандалить, критиковать каждый может”(с) как говорил бессмертный товарищ Райкин. “А что ты предлагаешь?” — резонно вы меня спросите. А я вам отвечу.

Читать далее
Total votes 139: ↑137 and ↓2+159
Comments140

ruDALL-E: генерируем изображения по текстовому описанию, или Самый большой вычислительный проект в России

Reading time10 min
Views168K

2021 год в машинном обучении ознаменовался мультимодальностью — активно развиваются нейросети, работающие одновременно с изображениями, текстами, речью, музыкой. Правит балом, как обычно, OpenAI, но, несмотря на слово «open» в своём названии, не спешит выкладывать модели в открытый доступ. В начале года компания представила нейросеть DALL-E, генерирующую любые изображения размером 256×256 пикселей по текстовому описанию. В качестве опорного материала для сообщества были доступны статья на arxiv и примеры в блоге

С момента выхода DALL-E к проблеме активно подключились китайские исследователи: открытый код нейросети CogView позволяет решить ту же проблему — получать изображения из текстов. Но что в России? Разобрать, понять, обучить — уже, можно сказать, наш инженерный девиз. Мы нырнули с головой в новый проект и сегодня рассказываем, как создали с нуля полный пайплайн для генерации изображений по описаниям на русском языке.

В проекте активно участвовали команды SberAI, SberDevices, Самарского университета, AIRI и SberCloud.

Мы обучили две версии модели разного размера и дали им имена великих российских абстракционистов – Василия Кандинского и Казимира Малевича:

1. ruDALL-E Kandinsky (XXL) с 12 миллиардами параметров;

2. ruDALL-E Malevich (XL), содержащая 1,3 миллиарда параметров.

Некоторые версии наших моделей доступны в open source уже сейчас:

1. ruDALL-E Malevich (XL) [GitHub, HuggingFace]

2. Sber VQ-GAN [GitHub, HuggingFace]

3. ruCLIP Small [GitHub, HuggingFace]

4. Super Resolution (Real ESRGAN) [GitHub, HuggingFace]

Две последние модели встроены в пайплайн генерации изображений по тексту (об этом расскажем ниже).

Версии моделей ruDALL-E Malevich (XL), ruDALL-E Kandinsky (XXL), ruCLIP Small, ruCLIP Large, Super Resolution (Real ESRGAN) также скоро будут доступны в DataHub.

Обучение нейросети ruDALL-E на кластере Christofari стало самой большой вычислительной задачей в России: 

1. Модель ruDALL-E Kandinsky (XXL) обучалась 37 дней на 512 GPU TESLA V100, а затем ещё 11 дней на 128 GPU TESLA V100 — всего 20 352 GPU-дней;

2. Модель ruDALL-E Malevich (XL) обучалась 8 дней на 128 GPU TESLA V100, а затем еще 15 дней на 192  GPU TESLA V100 – всего 3 904 GPU-дня.

Таким образом, суммарно обучение обеих моделей заняло 24 256 GPU-дней.

Разберём возможности наших генеративных моделей.

Читать далее
Total votes 92: ↑87 and ↓5+109
Comments185

Information

Rating
4,542-nd
Location
Россия
Registered
Activity