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

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

Send message

Автоматическая документация API Django Rest Framework с помощью DRF Spectacular

Level of difficultyMedium
Reading time5 min
Views15K

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

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

70+ бесплатных приманок для ловли хакеров

Reading time12 min
Views24K

Сегодня я хочу поделиться подборкой open source ханипотов, которые можно использовать для защиты своих серверов и локальных сетей от кибератак. Но для начала давайте разберемся, что такое ханипот и зачем он нужен.

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

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

YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source

Reading time14 min
Views56K

Привет! Меня зовут Максим Бабенко, я руковожу отделом технологий распределённых вычислений в Яндексе. Сегодня мы выложили в опенсорс платформу YTsaurus — одну из основных инфраструктурных BigData-систем, разработанных в Яндексе.

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

В Github-репозитории находится серверный код YTsaurus, инфраструктура развёртывания с использованием k8s, а также веб-интерфейс системы и клиентский SDK для распространённых языков программирования — C++, Java, Go и Python. Всё это — под лицензией Apache 2.0, что позволяет всем желающим загрузить его на свои серверы, а также дорабатывать его под свои нужды.

Читать далее
Total votes 176: ↑175 and ↓1+217
Comments33

Apache NlpCraft 1.0.0. Упрощение использования и расширение возможностей

Reading time7 min
Views1K

Apache NlpCraft - библиотека с открытым исходным кодом, предназначенная для интеграции языкового интерфейса с пользовательскими приложениями. Новая версия 1.0.0 привнесла в проект наиболее существенные изменения за все время его существования. 

Основные идеи развития библиотеки были изложены в данной заметке, вкратце напомню их суть:

1. Предельное упрощение, отказ от всех вспомогательных enterprise возможностей, предельно точная фокусировка продукта.

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

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

Как мы ищем документы в Naumen Disk или еще один вариант организации FTS

Reading time14 min
Views3.3K

В процессе работы над проектом мы рассмотрели различные способы организации Full Text Search (FTS) по файлам. И… отказались от них в пользу своего решения, которое базируется на стандартных методах. В статье я опишу путь построения полнотекстового поиска по файлам для веб приложения с акцентом на задачи FTS.

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

(Законы Акина) законы космической инженерии

Reading time3 min
Views39K
1. Инженерная разработка — это цифры. Анализ без цифр — это просто мнение.

2. Создание правильной ракеты занимает бесконечное количество времени. Поэтому следует создавать ракеты, в которых что-то неправильно.
Читать дальше →
Total votes 82: ↑76 and ↓6+70
Comments29

Основы Интерактивных карт

Reading time7 min
Views28K

Для визуализации интерактивных карт рассмотрим библиотеку - Folium.

Folium — это мощная библиотека визуализации данных в Python, которая была создана в первую очередь для того, чтобы помочь людям визуализировать гео-пространственные данные.

Folium - это библиотека с открытым исходным кодом, созданная на основе возможностей Datawrangling экосистемы.

С помощью Folium можно создать карту любого местоположения в мире, если вы знаете его значения широты и долготы.

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

Folium - это библиотека Python, которая помогает создавать несколько типов карт Leaflet. Тот факт, что результаты Folium интерактивны, делает эту библиотеку очень полезной для создания информационных панелей.

На официальной странице документации Folium:

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments4

Темная тема = шрифтовой ад / Решение

Reading time3 min
Views8.6K

В предыдущей статье я подробно разобрал проблемы связанные со шрифтами для темной темы и причины их актуальности. В данном материале смотрим на то, какие есть решения и что предлагает индустрия. + figma файл с адаптированным мной под темную тему стандартным текстовым набором стилей Material Design для Roboto.

Читать далее
Total votes 28: ↑27 and ↓1+32
Comments4

Стильный код на Python, или учимся использовать Flake8

Reading time7 min
Views163K

Автор: Анатолий Соловей, developer

Язык программирования Python очень востребован на современном рынке, он развивается изо дня в день, и вокруг него сложилось активное сообщество. Во избежание конфликтов между разработчиками-питонистами, создатели языка написали соглашение PEP 8, описывающее правила оформления кода, однако даже там отмечено, что:
Many projects have their own coding style guidelines. In the event of any conflicts, such project-specific guides take precedence for that project.

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

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

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

На помощь в этом случае приходят линтеры — инструменты, контролирующие оформление кода в проекте. Именно они помогают поддерживать его чистоту и, в нашем случае, предотвращать создание коммитов, которые могут содержать ошибки. Я для контроля качества использую Flake8 и сейчас постараюсь объяснить, почему выбрал именно его, и расскажу, как его настроить, чтобы получить максимальный результат. Заинтересовались? Добро пожаловать под кат.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments16

Лучшие open-source инструменты для Python проектов

Reading time12 min
Views33K

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

Инструменты распределены по этапам/сферам разработки. По каждому из них я дам небольшое описание и попытаюсь рассказать о его пользе. Если утилита имеет дополнительные расширения/плагины, то я расскажу про самые полезные (на мой взгляд).

Читать далее
Total votes 33: ↑30 and ↓3+35
Comments9

Как можно ускорить Python сегодня

Reading time10 min
Views19K

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

Этот инструмент способен обеспечивать хорошее быстродействие, поскольку имеет в арсенале ключевые оптимизированные библиотеки, а также возможность динамической компиляции основного кода, который предварительно не компилировался. Однако скорость Python значительно падает, когда дело доходит до обработки крупных датасетов или более сложных алгоритмов. В текущей статье мы разберём:

  1. Почему столь важно думать о «будущем разнородных вычислений».
  2. Две ключевых сложности, которые необходимо преодолеть в открытом решении.
  3. Параллельное выполнение задач для более эффективного задействования CPU.
  4. Использование ускорителя для дополнительного повышения быстродействия.

Один только третий пункт позволил увеличить быстродействие в 12 раз притом, что четвёртый позволяет добиться ещё большего за счёт ускорителя. Эти простые техники могут оказаться бесценными при работе с Python, когда требуется добиться дополнительного ускорения программы. Описанные здесь приёмы позволяют нам уверенно продвигаться вперёд без длительного ожидания результатов.
Читать дальше →
Total votes 36: ↑33 and ↓3+46
Comments14

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

Reading time24 min
Views167K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 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
Views34K

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

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

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

Reading time2 min
Views19K

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

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

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

Reading time13 min
Views33K

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

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

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

Reading time8 min
Views6.6K

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к 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

Information

Rating
Does not participate
Location
Россия
Registered
Activity