Как стать автором
Обновить
0
0.3
Алексей @Alex-Freeman

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

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

Интернационализация FastAPI

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.3K

Чтобы прикрутить gettext к FastAPI есть куча решений, я, например, пользовался этой статьей.

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

Читать далее
Рейтинг0
Комментарии1

Решаем загадку Джиндоша из Dishonored 2 на SQL перебором с возвратом

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров9.4K


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

Сегодня мы рассмотрим решение непростой загадки Джиндоша из замечательной игры Dishonored 2 с помощью SQL.
SQL Может Многое!
Всего голосов 54: ↑54 и ↓0+73
Комментарии28

Раскрываем секреты роя: оптимизация на Python с помощью PSO

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.6K

Начну с небольшой шутки:

"Знаете ли вы, что до изобретения часов людям приходилось активно ходить повсюду и спрашивать время?"

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

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

Индивидуально оптимальная позиция: то, что особь считает наилучшим для себя.

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

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

Данный алгоритм известен как оптимизация роем частиц (Particle Swarm Optimization, PSO). Возможно, это звучит несколько сложно. Что подразумевается под "оптимизацией"? Какова роль математики в этом процессе? Что именно оптимизируется? В статье я постараюсь подробно разъяснить все эти моменты. Более того, мы применим ООП на Python для создания собственного класса ParticleSwarmOptimizer(). И таким образом, мы пройдем путь от теоретических основ PSO до их практической реализации.

Итак, приступим! Желаю приятного чтения.

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

Справочник-шпаргалка по методологиям и паттернам на Python

Уровень сложностиСредний
Время на прочтение40 мин
Количество просмотров10K

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

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

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

Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 2

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.4K

Привет, хабравчане!

В первой части были рассмотрены паттерны проектирования Repository и Unit of Work.

Это вторая часть цикла о DDD. В ней расскажу, как добавить к проекту событийно-ориентированную архитектуру.

Код подопытного приложения ищите в репозитории по ссылке. Подробнее о DDD и паттернах Repository и Unit of Work читайте в первой части по ссылке...

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

REDIS: такой простой и такой сложный

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров15K

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

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

Знакомимся с линейной алгеброй в NumPy

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.4K

Краткий гид по основам библиотеки NumPy и основным линейно-алгебраическим операциям с её использованием

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

Задача коммивояжёра в общем виде. Наибыстрейшее точное решение

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров14K

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

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

Читать далее
Всего голосов 36: ↑35 и ↓1+42
Комментарии29

Как создать часы на Python: уроки программирования для школьников

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров10K

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

Python открывает перед школьником множество дверей в мир технологий и дает возможность получить уверенность в своих силах.

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

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

Kafka для самых маленьких разработчиков, аналитиков и тестировщиков

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

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

С одной стороны, это может быть и хорошо. Такие шаги стимулируют индустрию. Но всё же лучше понимать, что ты делаешь, иначе проекту можно сделать только хуже. В этой статье я обращаюсь к разработчикам, аналитикам и тестировщикам, которые еще не сталкивались с Kafka по работе. Помогу понять, почему все же в микросервисной среде многие не ходят просто по REST, а используют этот инструмент - что конкретно делает Kafka и когда есть смысл её применять.

Читать далее
Всего голосов 28: ↑27 и ↓1+33
Комментарии15

Чат-бот с ИИ для тренировки английского произношения и грамматики

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.6K

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

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

Django 5: асинхронный бекенд и эффектный фронтенд с минимальными затратами времени

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

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

Уже давно у меня возникала мысль подробно, как в случае с FastAPI и Aiogram 3, разобрать «суровый» Django 5. Однако, из-за большого дефицита свободного времени и масштабности Django, руки до этого не доходили. Сегодня, как вы уже поняли, момент настал.

В процессе написания кода мы затронем следующие темы: маршрутизация, работа со статическими файлами, асинхронное использование Django 5, работа с базой данных SQLite через встроенное ORM и многое другое.

Сегодня мы создадим простой сайт, который будет демонстрировать гороскоп на завтра для любого знака зодиака. Чтобы было интереснее, гороскоп будем парсить в момент обращения к знаку зодиака (об этом подробнее далее).

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

Как котята лапками настраивают GPU в Kubernetes и при чем тут эффект Манделы

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

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

Привет, Хабр! Меня зовут Антон. Мне часто приходится настраивать инфраструктуру для обучения и инференсинга моделей на GPU в Kubernetes. Хочу поделиться волшебным инструментом, который позволяет это делать без костылей и велосипедов, если у вас лапки.

В этой статье расскажу и про боли при настройке GPU для ML-задач, и про лекарство — GPU-оператор. Разберемся на примере с GPU NVIDIA, но и для AMD общая концепция будет похожа. Ранее я выступал с этим материалом на конференции Pycon 2024.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+39
Комментарии0

Реализация Триггеров TSQL на Python

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

В прошлой статье (https://habr.com/ru/articles/819931/) я рассказал про общую структуру проекта, про работу Kafka с CDC для получения данных из базы. Теперь пришло время поговорить про саму реализацию триггеров на Python. Как говорилось в предыдущей статье, мы будем реализовывать только триггеры Before (Instead Of останутся в базе без изменений). Итак, что же нам необходимо предусмотреть при разработке?

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

Простой способ развернуть локальный LLM

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров10K

Большие языковые модели (LLM, Large Language Models) стали незаменимыми инструментами для разработчиков и исследователей. С их помощью можно решать разнообразные задачи.. Однако использование таких моделей часто связано с зависимостью от внешних сервисов, что накладывает определённые ограничения. Локальное развертывание LLM позволяет сохранить контроль над данными и гибко настроить модель под конкретные нужды, используя при этом преимущества локальной инфраструктуры.

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

Читать далее
Всего голосов 13: ↑12 и ↓1+16
Комментарии11

Парсинг Амазона на easy без мам, пап и ипотек

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.1K

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

Я сломал себе голову в поисках того, как спарсить карточки товаров в Амазоне. Проблема в том, что у Амазона используется разные варианты дизайна под различную выдачу, в частности – если необходимо спарсить карточки по поисковому запросу «bags» - карточки будут расположены вертикально, как мне и нужно, а вот если взять, к примеру «t-shirts» - тут уже карточки расположены горизонтально, и с таким расположение скрипт выпадает в ошибку, он отрабатывает открытие страницы, но не хочет скроллить.

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

Python на вынос: PyInstaller и Nuitka

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2K

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

Один из вариантов был использовать Docker, но я от него отказался по причине того, что окружение для Docker тоже надо будет готовить. Потом надо будет правильно запуск этот образ и правильно с ним взаимодействовать. Конечно, для упрощения можно использовать docker compose, но это не сильно снижает сложность для конечного пользователя. Кроме того, образ будет достаточно большим.

Поэтому я после некоторых размышлений обратился к таким инструментам как Python Compilers, а именно - Nuitka и PyInstaller и провёл небольшое исследование на предмет

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

Есть два варианта того, что мы получаем от их работы в качестве результата (кроме эмоциональных ощущений):

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

Решаем проблему блокировок (и YouTube) за 5 минут на роутере Mikrotik через контейнеры и без VPN

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров128K

Всем привет! Это моя первая статья на хабре, которая точно кому-то пригодится в данное время. Здесь я расскажу как ускорить ютуб и разблокировать доступ к некоторым заблокированным ресурсам прямо на роутере Mikrotik и без VPN.

В моем случае используется MikroTik hAP ax3. Стоит упомянуть, что подойдут только роутеры с архитектурой ARM, ARM64 или x86 (CHR), которые и поддерживают контейнеры.

Кто подходит под эти условия, велком под кат)

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

Ускорили диффузионку в несколько раз? – о новой модели ImagineFlash от Meta

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.9K

Важно, что в переводе статьи мы опустили некоторые математические подробности. Мы обобщили математические выражения текстом. Курсивом выделены комментарии, чтобы новичкам было проще читать, а выделенный уровень подготовки  оправдывал себя и под статьей не пришлось ставить графу “сложно”. 

Чтобы статья не вышла слишком большой, приводится ее основная часть с методом. Мы приводим краткий вариант перевода ресерча от Meta.

Внутри оригинала можно ознакомиться с результатами работы. И конкретными метриками в таблицах. 

Вся статья сохраняет письмо от первого лица. 

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

Как подружить PyTorch и видеокарты AMD с помощью pytorch_dlprim

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.6K


Когда начинаешь изучать или использовать машинное обучение, то думаешь, как приспособить те устройства, которые есть в наличии, чтобы снизить свои траты на вход. И, в частности, обладатели довольно мощных старых карт AMD (типа AMD Fury), на которых легко идут довольно тяжёлые игры типа Cyberpunk 2077 или Atomic Heart, сталкиваются с тем, что эти GPU бесполезны для PyTorch и других фреймворков машинного обучения. Да и самые современные карты AMD 7900-й серии работают с PyTorch только из под Linux. Также есть редкие карты других брендов, типа Intel Arc или китайские, которые хотелось бы использовать для машинного обучения.

Итак, в этой статье я приведу подход, который в некоторых случаях может помочь. Он сыроват, но других работающих вариантов под PyTorch я не нашёл. Итак, речь пойдёт о проекте израильского разработчика Артёма Бейлиса (Тонких) pytorch_dlprim.
Как сумрачный гений плюсов подключает все железки к DL
Всего голосов 39: ↑39 и ↓0+54
Комментарии4
1
23 ...

Информация

В рейтинге
2 231-й
Откуда
Cascais, Lisboa, Португалия
Зарегистрирован
Активность