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

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

Send message

Создание рекомендательных систем с использованием библиотеки Surprise

Level of difficultyEasy
Reading time10 min
Views8.2K

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

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

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

Тестируем API в Таверне

Level of difficultyMedium
Reading time6 min
Views2.7K

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

В сегодняшней статье мы поговорим об использовании Python для проверки API веб приложений. Но сначала давайте рассмотрим, что представляет из себя тестирование API.

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

Гайд по регистрации ПАК в реестр ПО Минцифры

Level of difficultyHard
Reading time19 min
Views18K

Рассказываем о 1236 Постановлении Правительства и других документах, регулирующих процедуру. Подробно описываем как включить ПАК в реестр отечественного программного обеспечения Минцифры. Отдельно разбираем процедуру включения программной части ПАК и все способы удовлетворить требования к аппаратной части. Указываем на ключевые моменты в подготовке и ссылки на все документы для самостоятельного изучения темы.

1. Что такое Программно-аппаратный комплекс (ПАК) ? Описание реестров, встречающихся в статье.

2. Какие преимущества дает регистрация ПАК в реестр Минцифры по ПП 1236?

3. Какие требования к программному обеспечению при регистрации ПАК в реестр?

4. Какие требования к аппаратной части при регистрации ПАК в реестр?

5. Какую документацию подготовить для регистрации ПАК в реестр?

6. Как проходит процедура проверки ПАК? Кто проверяет и в какие сроки?

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

Почтофон: мфу за миллион

Reading time3 min
Views11K
Новым интересным изобретением порадовали нас Дагестанские учёные.
Да, всё правильно, называется он...почтофон.
Я думал они переизобрели факс, но на деле оказалось куда интереснее.
Про это изобретение уже успели поведать по телевидению, но на хабре о нём пока никто ничего не писал, исправим ситуацию.



Под катом вы так же увидете грандиозное разоблачение от других хабра-юзеров.
Читать дальше →
Total votes 230: ↑206 and ↓24+182
Comments334

Убийство разработки: опыт Selectel

Reading time8 min
Views34K

Итак, я зашел в раздел с постами и там увидел диаграмму (пик рилейтед).

А под ней ссылка на статью «Разработчики - в стойло, менеджеры в - башню из слоновой кости: создаем касту избранных в 4 шага».

Фейл за фейлом
Total votes 135: ↑107 and ↓28+106
Comments52

Языки и технологии принтеров

Reading time7 min
Views23K
image

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

В этой статье предлагаю рассмотреть и сравнить технологии печати, с которыми вы сталкиваетесь, выбирая новый принтер, проводя допечатную подготовку документа или работая с электронными PDF-копиями документов. И конечно, если вы пытаетесь перехватить и проанализировать задание на печать.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments5

Битвы на территории ZFS

Reading time6 min
Views21K
Один из крупных клиентов нашей компании попал в грустную ситуацию: базы данных подросли, потребности тоже, купили мощные NUMA-сервера, установили любимую файловую систему ZFS (ZFS — для краткости: формально это OpenZFS), а производительность PostgreSQL стала хуже, чем до покупки.

Базы нешуточные: две базы, в каждой по 180ТБ. В них сливаются данные из многих других, непостгресовых баз. А этими, огромными, напрямую пользуются аналитики компании, и эта деятельность критически важная. ZFS сжала эти базы в два раза — теперь каждая занимает на диске по 90 ТБ, железу бы вздохнуть с облегчением. А стало только хуже. Пригласили наших сотрудников из поддержи, они провели аудит. Случай нам показался интересным, и мы решили о нём рассказать. Заодно напомнив о средствах диагностики.
Читать дальше →
Total votes 67: ↑65 and ↓2+85
Comments103

Propan — Python фреймворк для написания микросервисов с использованием брокеров сообщений

Level of difficultyEasy
Reading time4 min
Views12K

Так исторически сложилось, что последние 5 лет своей продуктовой разработки я работаю с микросервисами вокруг брокеров сообщений (преимущественно RabbitMQ и Kafka).

И все это время меня не покидало чувство некой неудовлетворенности и неполноценности инструментария, который был мне доступен.

Приходя из мира HTTP фреймворков ты чувствуешь себя как будто на костылях - ни тебе hotreload'а, который есть практически в любом wsgi-asgi сервере, хочешь тестировать - поднимай контейнеры окружения или мокай зависимости (особенно удобно в CI, ага), не забудь о реконнектах, логировании, трассировке и тд и тп.

И вот, таская от сервиса к сервису ворох всех этих проблем (и код который эти проблемы решает), до меня дошла гениальная идея: оформить весь однотипный код, общий для всех сервисов в единый пакет!

Так появился на свет фреймворк Propan.

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

Как «эффективный менеджмент» создаёт катастрофы: изучаем причины техногенных аварий. Часть 1

Level of difficultyEasy
Reading time17 min
Views75K

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

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

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

Погрузиться в бездны катастроф
Total votes 192: ↑188 and ↓4+231
Comments374

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

Level of difficultyMedium
Reading time5 min
Views18K

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

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

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

Reading time12 min
Views26K

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

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

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

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

Reading time14 min
Views60K

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

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

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

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

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

Reading time7 min
Views1.1K

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

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

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

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

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

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

Reading time14 min
Views3.4K

В процессе работы над проектом мы рассмотрели различные способы организации 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
Views32K

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

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

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

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

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

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

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

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

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

Reading time3 min
Views8.7K

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

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

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

Reading time7 min
Views171K

Автор: Анатолий Соловей, 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
Views36K

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

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

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

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

Reading time10 min
Views21K

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

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

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

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

Information

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