Обновить
1024K+

Python *

Высокоуровневый язык программирования

805,62
Рейтинг
Сначала показывать
Период
Уровень сложности

Не гугли — собери ИИ-агента, который сам ищет, пишет и помогает с кодом

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели68K

Заметил, что трачу часы на поиск, баги и рутину — собрал ИИ-агента, который делает это за меня. Протестировал 3 подхода — от no-code до кастомного LangChain. В статье — инструкция и инсайты.

Читать далее

Как мы сделали рекомендации, отказались от подрядчика и заработали денег

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

Привет, Хабр! Меня зовут Данила Федюкин и я тимлид в X5 Digital. Руковожу командой, которая занимается рекомендациями и метчингом.

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

Читать далее

Знакомьтесь, Ричард Джонс (цикл заметок о выдающихся питонистах)

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

PyPI — централизованный каталог Python-пакетов. Сегодня в нем более 865 тысяч проектов общим весом 36 терабайт.

PyPI создал Ричард Джонс. В октябре 2002-го, в электричке, по дороге на работу в Мельбурн.

Будет интересно

Как менялся сон моих детей: анализ 5 лет данных о сне

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

Как менялся сон моих детей: анализ 5 лет накопленных данных

За 5 лет жена скрупулезно записывала сон наших дочерей. Я взял эти данные и проанализировал: как меняется сон с возрастом, сколько спят дети на самом деле, и правда ли нормы ВОЗ работают.

Оказалось, что наши дети спят по-разному, но оба — в пределах нормы. И даже в одинаковом возрасте их паттерны сна удивительно похожи!

В статье: 📈 графики, 📊 статистика и главный вывод для родителей.

#анализданных #родительство #детскийсон #python #датасаенс

Читать далее

Внедряем Gemini во все поля ввода Windows: Бесплатно, без смс и с обходом ограничений

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

Полгода назад 1500 бесплатных запросов в Gemini казались вечностью. Сегодня Google закрутил гайки, и лимиты улетают за час

Я доработал свою Open Source утилиту на Python. В этой статье расскажу, как реализовать систему ротации API-ключей, чтобы получить «бесконечный» доступ к нейронке, как переключаться между моделями Gemini и Gemma на лету и внедрить AI-помощника прямо в буфер обмена Windows. Исходники и готовый билд — внутри.

Посмотреть код

Все об устройстве Q65 с примерами на Python (часть 1)

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

Q65 — цифровой протокол, разработанный Джо Тейлором (K1JT) и его командой в 2021 году для проведения минимальных связей в условиях сложных трасс прохождения радиосигнала, в том числе для проведения связи через отражение сигнала от Луны, где сигналы не только очень сильно ослабевают, но и имеют Доплеровский разброс. В этой статье будут рассмотрены подробности работы протокола.

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

Читать далее

Как не положить API: rate limiting в Python

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

История о том, как я случайно устроил DDoS на внутренний API, обрабатывая 10 миллионов векторов. И как asyncio.Semaphore меня спас.

Читать далее

Создаем GUI на Python: от простого скрипта к Markdown-редактору с Flet

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели18K

В этой статье мы познакомимся с Flet — революционным фреймворком, который позволяет делать именно это. Flet дает вам возможность создавать интерактивные GUI на чистом Python, а для отрисовки использует мощный движок Flutter. Результат — быстрые, красивые и нативные приложения для Windows, macOS, Linux и даже для веба, без необходимости писать ни строчки на Dart или JavaScript.

Читать далее

Делаем самые лучшие фото для документов

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

Привет, Хабр!

Делали ли вы электронную визу в Индию? А, может, в Южную Корею? Или подавались на лотерею Green Card в США? Если да, то вы точно знаете, что для заявки на все эти документы надо прикрепить фотографию определённого размера с целым набором требований...

А такое ну просто необходимо автоматизировать!

И, как можно догадаться, сайтов для автоматизации фотографий на документы просто куча. Только вот есть одна проблема: все эти сайты хотят много денег - от 5 до 12 долларов за приведение фото к нужным требованиям.

Терпеть такое я, конечно же, не стал и написал своего бота в Телеграме, который делает это всё бесплатно.

Подробности под катом!

Читать далее

Ловим «взрослые» сцены на видео: как ИИ помогает редакторам

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

Поводом для написания этой заметки стало обсуждение на недавнем отраслевом мероприятии задач мультимодерации контента: как быстро и надёжно находить «взрослые» сцены в длинных видео и автоматически подсвечивать фрагменты для ручной проверки. Похожие кейсы регулярно встречаются и в открытых соревнованиях по ИИ (например, в подборке задач Wink AI Challenge на Codenrock).

Читать далее

Парсим Ozon. Собираем информацию о ценах, товарах и отзывах

Время на прочтение23 мин
Охват и читатели22K

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

В этой статье мы разберём, почему для Ozon нужен браузерный парсинг, как использовать Playwright для успешного парсинга и как обернём решение в Telegram-бота, который по запросу пользователя парсит товары и отправляет CSV-файл.

Читать далее

Сравнение алгоритмов сортировки на Python с Pygame-визуализацией

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

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

Читать далее

Я сделал Log Bull — простую open source альтернативу ELK, Loki и Graylog для сбора логов из кода (Python, Go, JS и т.д.)

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели9.2K

За последние ~5 лет я много раз сталкивался с задачей собирать логи: обычно из маленьких или средних по размеру кодовой базы проектов. Отправлять логи из кода не проблема, у Java и Go для этого есть библиотеки практически из коробки. А вот разворачивать что-то для их сбора — головняк. Понятно, что решаемый (ещё до ChatGPT, а сейчас так тем более), но всё же. Все системы логов, прежде всего, ориентированы на большой-большой enterprise мир и его требования, а не на простых смертных с несколькими палками, клеем и дедлайном "вчера".

Запуск ELK для меня каждый раз испытание: куча настроек, нетривиальный деплой, а при заходе в UI разбегаются глаза от вкладок. С Loki и Graylog — немного проще, но всё равно функций сильно больше, чем мне нужно. При этом разделять логи между проектами, добавлять других пользователей в систему так, чтобы они не видели лишнего — тоже не самый очевидный процесс.

Поэтому примерно год назад я решил, что сделаю свою систему для сбора логов для себя: максимально простую в использовании и запуске. Чтобы разворачивалась на сервере одной командой, вообще без настроек и без лишних вкладок в интерфейсе. Собственно, так появился и теперь вышел в open source Log Bull: система для сбора логов для разработчиков с проектами middle-sized размера.

Читать далее

Ближайшие события

Что такое детерминизм и как с ним бороться?

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

Привет, Хабр!

Много лет можно наблюдать один и тот же ритуал: человек берёт фиксированный seed, торжественно записывает его в три места, запускает обучение и искренне ожидает, что всё будет повторяться до бита. А потом accuracy скачет на третьем знаке, лосс уплывает и приходит вопрос: «Почему не детерминируется?» А потому что детерминизм в ML это не один флажок. Это сумма десятка мелких факторов, от выбора алгоритма в cuDNN до порядка файлов в каталоге.

Читать далее

Похороны стартапа на Патриарших: как мы завайбкодили сервис и остались без аудитории

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели24K

«Человек всегда велик в намерениях. Но не в их выполнении. В этом и состоит его очарование» — что-то на глубоком из Ремарка «Три товарища»

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

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

Самая интересная часть начинается с главы «Возвращение: новая команда и быстрый релиз», но я искренне рекомендую читать статью с самого начала. Так будет проще уловить весь контекст и понять, почему проект получился именно таким, каким он получился.

Читать далее

Анализ лиц с домофона: как я победил несовместимости и собрал dlib+CUDA на Ubuntu — готовый скрипт

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

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

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

Это был чисто экспериментальный проект: не «система слежки», а тест производительности и возможностей CUDA в связке с dlib и face_recognition.

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

Проект выложен на GitHub.

CUDA

AI Software Engineering: От хаоса Vibe Coding к системной разработке с AI-агентами

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

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

В этой статье мы исследуем эволюцию подходов к AI-разработке - от такого подхода как Vibe Coding к системной методологии AI Software Engineering (AI SWE), которая позволяет превратить AI-агентов в управляемый инструмент для создания больших и сложных систем.

Читать далее

Как я устал от тормозов и закрытости Pinokio и написал свою портативную альтернативу за пару вечеров

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

Надоел Pinokio? Мне тоже. Популярный установщик для нейросетей оказался медленным, тяжеловесным и, что самое страшное, — закрытым "котом в мешке". Я заглянул под капот, ужаснулся и за пару вечеров написал свою альтернативу — PortableSource. Внутри статьи — полное разоблачение Pinokio с доказательствами и рассказ о создании по-настоящему портативного и честного инструмента.

Читать далее

Скрипт, который следит за тобой: автоматический аудит действий в Linux

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

Привет, Хабр! В данной статье хочу разобрать auditd - полезный инструмент аудита в Linux, который записывает каждое действие, а скрипт превратит логи в читаемые отчёты и алерты.

Linux-сервер без мониторинга активности пользователей — как дом с открытыми окнами. Проблемы, которые помогает решить auditd:

Несанкционированный доступ (кто и когда использовать, например, sudo)
Подозрительные команды (rm -rf, изменение прав, доступ к каким-либо файлам)
Расследование инцидентов (кто что натыкал перед падением сервера)
Соответствие корпоративным стандартам (возможно, ИБ требует логирования действий или вы любите контроль)

Решение: auditd + Python-скрипт для анализа и алертов.

Читать далее

Как привинтить Python к Go

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели9K

Здравствуйте,

Меня зовут Александр Певзнер, и я программирую на Си и Go. Go обычно ассоциируется с бакендом, микросервисами и вот этим вот всем. Но я использую его необычным образом: я пишу на нём системное ПО.

Почему я это делаю именно на Go? Этот язык привлекает меня своей простотой, лаконичностью, ясной семантикой, прекрасной документацией и великолепной стандартной библиотекой.

Одна из моих программ, ipp-usb, написанная на Go, входит во все дистрибутивы Linux и *BSD и делает возможным использование принтеров и сканеров, которые подключаются к USB и поддерживают IPP over USB протокол - т.е., примерно всех современных.

А еще я член OpenPrinting - небольшой, но очень плодотворной группы людей, которая ответственна за печать и, отчасти, сканирование на всех UNIX-like OS и за формирование индустриальных стандартов в этой области.

Это всё начиналось для меня, как хобби, но сейчас это - часть моей оплачиваемой работы.

В силу особенностей моей работы меня не очень интересуют такие вещи, как поддержка миллиона запросов в секунду и прочий high load (это не значит, что мои программы тормозные. Но никто не дёргает системный принтер миллион раз в секунду). Но зато приходится разбираться с некоторыми другими непростыми штуками.

Об одной из таких штук и пойдёт речь в этой статье.

Понадобился мне для одного проекта на Go встроенный скриптинг. Ну т.е., чтобы программа могла всосать в себя скрипт, который определяет некоторые аспекты её поведения.

Размышляя о том, на каком языке программа должна скриптоваться, в выбирал между JS, Lua и Python.

Однако, JS и Lua - слишком нишевые языки. JS ассоциируется у всех с вебом а Lua - с разработкой игр. Таким образом, выбор естественным образом пал на Python. Этот язык знают все, а я испытываю некоторую надежду, что скрипты для моей программы буду писать не только я. Хотя сам я, должен признаться, Python не знаю и не люблю :)

Таким образом, осталось только придумать, как встроить интерпретатор Python-а в программу на Go.

Об этом и пойдёт речь в этой публикации