Pull to refresh
0
0.2
Алексей @Alex-Freeman

User

Send message

ООП для типовых ML задач

Level of difficultyMedium
Reading time18 min
Views1.4K

Привет! Меня зовут Андрей Татаренко, я работаю Data Scientist-ом в Альфа-Банке. Я вам расскажу о своем опыте разработки Python-библиотеки для автоматизации разработки типовых ML-моделей. В статье привожу ту структуру основных классов, которая у меня получилась. Надеюсь, читатель сможет почерпнуть какие-то идеи, особенно если уже сталкивался с подобной задачей.

Читать далее
Total votes 14: ↑14 and ↓0+17
Comments1

Ddos-атака c Kali Linux — простейший пример

Level of difficultyEasy
Reading time3 min
Views9.6K

В данной статье я поделюсь опытом ddos атаки уязвимой машины metasploitable.
Как ее устанавливать в виртуалбокс и настраивать я писал в этой статье:
https://habr.com/ru/articles/850188/

Еще раз напоминаю правовую информацию:

Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей

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

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

Читать далее
Total votes 7: ↑2 and ↓5-1
Comments8

Почтовый сервер с нуля. Часть третья

Level of difficultyHard
Reading time17 min
Views10K

В этой заключительной статье мы подробно рассмотрим процесс настройки почтового сервера с использованием Docker и Exim4, Dovecot, PostfixAdmin и RainLoop. Наша цель — создать полностью функциональный и масштабируемый почтовый сервер, который легко управляется благодаря контейнеризации.

Давайте настраивать
Total votes 21: ↑21 and ↓0+24
Comments15

OpenCV: компьютерное зрение на Python

Reading time6 min
Views5.5K

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

В этой статье мы рассмотрим несколько примеров работы с компьютерным зрением с помощью бесплатной библиотеки OpenCV.

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

Как интегрировать синхронный код в асинхронный. Инструкция

Reading time8 min
Views3.2K

Когда создаешь новое приложение, особенно если оно должно быстро обрабатывать данные, использование библиотеки asyncio — это хороший выбор. Она позволяет работать с неблокирующими библиотеками, asyncpg и aiohttp. Однако чаще всего программисты работают с уже существующим кодом, который использует блокирующие библиотеки. Поэтому большую часть времени может занять адаптация и модернизация старого кода, так как асинхронный код не дружит с синхронным (им мешает GIL).

GIL (Global Interpreter Lock) — это механизм, который предотвращает одновременное выполнение нескольких потоков в Python. Это означает, что даже если у вас есть многопоточное приложение, только один поток может выполнять Python-код в любой момент времени. Поэтому можно запускать дополнительный поток для выполнения операции ввода-вывода.

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

threading и logging. Как логировать в несколько потоков?

Level of difficultyMedium
Reading time5 min
Views3.6K

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

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

Начну по порядку и сразу к делу, без дифирамбов.

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

Telegram Web App, FastAPI и вебхуки в одном приложении: Создаем Telegram-бот с веб-интерфейсом для приема заявок

Reading time49 min
Views15K

Сегодня мы создадим полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через MiniApp и вебхуки. В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение.

Наше приложение будет включать как фронтенд, так и API методы для обработки запросов. Все взаимодействия с Telegram-ботом будут осуществляться через вебхуки, что обеспечит быструю и надежную связь. Важным аспектом является то, что мы будем использовать FastAPI для поднятия бота, что позволит интегрировать все компоненты в одном приложении.

Для разработки самого бота мы воспользуемся библиотекой Aiogram 3, которая обеспечит удобный и мощный интерфейс для взаимодействия с Telegram API. Это позволит нам быстро реализовать необходимые функции и сделать процесс разработки более эффективным.

Читать далее
Total votes 20: ↑18 and ↓2+19
Comments9

Как нарисовать квадрат 3 × 3 см на веб-странице*

Reading time5 min
Views26K

* Не привлекая внимания санитаров

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

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

Что ж, вызов был брошен. И я поставил себе задачу (вы же тоже сами ставите себе задачи?) — нарисовать красивый красный квадратик размером 3 × 3 см. Тому, что у меня в итоге получилось, и посвящён мой необычный рассказ. 

Читать далее
Total votes 112: ↑103 and ↓9+112
Comments49

Строим ETL-конвейер для машинного обучения с помощью Kafka, Clickhouse и Go

Reading time16 min
Views4.3K

В этой статье я поделюсь с вами своим опытом использования Golang, Kafka и Clickhouse на примере простого ETL-конвейера для параллельной передачи JSON-данных в базу данных с последующим прогнозированием температуры на основе машинного обучения.

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

Оконные функции простым языком — Фреймы

Level of difficultyEasy
Reading time4 min
Views6.2K

Привет всем!

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

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи :-)

Будем разбирать примеры на такой небольшой таблице, где указана прибыль (net_profit) компании на каждый месяц в рамках одного года.

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

Шаблоны проектирования для баз данных

Reading time4 min
Views10K

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

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

Читать далее
Total votes 20: ↑10 and ↓10+5
Comments9

Как подружить микросервисы и Kafka

Level of difficultyEasy
Reading time6 min
Views7.8K

С увеличением вычислительных мощностей и пропускной способности каналов связи увеличились также и объемы обрабатываемых данных, а также требования к скорости обработки. Сейчас все больше систем требуют, чтобы работа с данными велась в режиме реального времени. Apache Kafka является распределённым программным брокером сообщений с открытым исходным кодом. Цель Kafka является создание горизонтально масштабируемой платформы для обработки потоковых данных в реальном времени с высокой пропускной способностью и низкой задержкой.

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

Читать далее
Total votes 8: ↑6 and ↓2+8
Comments7

Опыт тюнинга Llama3 405B на AMD MI300x

Level of difficultyMedium
Reading time8 min
Views2.4K

Опенсорсные модели становятся всё объёмнее, поэтому потребность в надёжной инфраструктуре для выполнения крупномасштабного обучения ИИ сегодня как никогда высока. Недавно наша компания выполнила fine-tuning модели LLaMA 3.1 405B на GPU AMD, доказав их способность эффективно справляться с крупномасштабными задачами ИИ. Наш опыт был крайне положительным, и мы с радостью выложили всю свою работу на GitHub в опенсорс.

GPU AMD, и в особенности серия MI300X — это серьёзная альтернатива ИИ-оборудованию NVIDIA, обеспечивающая больше производительности на вложенный доллар. Наша система состояла из одного узла с 8 GPU AMD MI300x, а для fine-tuning мы использовали JAX. В этой статье мы расскажем всю историю fine-tuning LLaMA 405B, в том числе и подробности шардинга параметров и реализации LoRA.

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

Пишем калькулятор на Python с помощью Flet

Level of difficultyEasy
Reading time10 min
Views5.5K

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

Чтобы создать привлекательное мобильное приложение, которое будет отлично работать на Android и iOS, обычно требуется значительная доработка существующих инструментов, таких как Kivy или Tkinter. Именно здесь на сцену выходит Flet — фреймворк, который позволяет легко создавать веб-, десктопные и мобильные приложения, используя Flutter, популярный инструмент для создания пользовательских интерфейсов от Google, но на языке Python.

Давайте посмотрим, как создать базовое приложение-калькулятор с помощью Flet, и увидим, насколько простым и эффективным может быть этот фреймворк.

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

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Level of difficultyHard
Reading time8 min
Views15K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее
Total votes 43: ↑42 and ↓1+56
Comments6

Окей, Джанго, у меня к тебе несколько вопросов

Reading time36 min
Views57K

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

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

Читать далее
Total votes 78: ↑74 and ↓4+85
Comments23

Мини-гайд по стилям в Qt (PySide6)

Level of difficultyEasy
Reading time3 min
Views3.1K

Здравствуйте, уважаемые Хабрчане и гости!

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

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

Опять же, статья не претендует на звание супер-туториала, а скорее носит характер некого «небольшого справочника» или «мини-гайда» для тех, кто хочет приукрасить свое приложение на Qt. Тем более я не pro в CSS, и делаю на пробу, эксперементрую.

В качестве примера возьму несколько виджетов, и постараюсь схематично наглядно показать, как некоторые строки из QSS (CSS для Qt) могут преобразить виджет.

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

Есть несколько способов, как можно применить стили к своему приложению (которые я знаю):

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

Руководство от ненавистника Kubernetes: как использовать эту технологию

Level of difficultyEasy
Reading time6 min
Views7.2K

Пол Батлер, инженер-программист и создатель Jamsocket, уверяет, что Kubernetes — это как сложный, но увлекательный пазл: его можно ненавидеть, но без него не обойтись. Мы перевели его статью, в которой он рассказал, какие ресурсы K8s использует с удовольствием, а от каких предпочитает держаться подальше. В этом руководстве ненавистника вы найдете ценные советы, как извлечь максимум пользы из Kubernetes.

Читать далее
Total votes 27: ↑24 and ↓3+31
Comments4

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году?

Level of difficultyEasy
Reading time18 min
Views3.3K

Казалось бы, на дворе 2024 год, а пользователи продолжают стойко преодолевать тяготы (читай угадывать где изображены светофоры), которые им выставляет корпорация Гугл в виде капчи и хвастаться у кого больше score, чтобы преодолеть рекапчу посложнее. Тем не менее, по заявлениям некоторых оптимизаторов, капчи уже давно себя изжили и не работают так эффективно, как хотелось бы изначально их разработчикам. Какая же самая наиболее популярная капча современности? Это reCAPTCHA.

Читать далее
Total votes 5: ↑5 and ↓0+9
Comments7
1
23 ...

Information

Rating
2,448-th
Location
Cascais, Lisboa, Португалия
Registered
Activity

Specialization

Specialist
From 7,000 €
Python
SQL
Golang
RabbitMQ
Apache Kafka
Docker
Redis
Fastapi