Обновить
512K+

Python *

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

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

Переход к неанонимным изменениям схемы СУРБД Firebird. Часть 1: извлечение схемы

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

Когда я только пришел на должность помощника DBA, я заметил, что все production базы фиксируют изменения странным образом, а именно каждый день в 00:00 вызывался скрипт, который выгружает схему БД Firebird, в виде файла script.sql, созданный встроенной утилитой isql. Далее делил весь файл на объекты (файлы), по группам (директориям) принадлежности, объясняю: есть кусок скрипта создания таблицы, он помещается в директорию 01_TABLES в виде отдельного файла названного в честь названия объекта который он содержит, и так далее. Чем же это плохо? А суть в том что разработчиков много, правки анонимны, история тяжело воспроизводимая. В такой каше сразу не разберешься.

Читать далее

«Я собрал приложение за выходные». Почему вайбкодинг в проде опаснее, чем кажется

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

«Я собрал приложение за выходные». Почему вайбкодинг в проде опаснее, чем кажется.

Где заканчивается прототип и начинается инженерия, почему «работает у меня» не равно «готово для бизнеса» и за что на самом деле платят опытной команде.

Читать далее

Тестирование крупного Django-монолита: от хаоса с ID к стабильным прогонам в pytest

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

Всем привет! Сегодня хочу рассказать об особенностях автоматического тестирования крупного проекта на Django, в котором тесты написаны в разных стилях и есть много пересечений моделей данных. Поговорим о том, как привести всё к единому знаменателю без риска получить непредсказуемое поведение тестов. Также разберём конфигурацию pytest, параметры его запуска, работу с фабриками моделей и стили тестирования в двух парадигмах (Django и чистый pytest).

Читать далее

Спиновая динамика в анимациях: моделируем волны намагниченности в ферромагнетиках с помощью python

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

В этой статье речь пойдёт о том, как смоделировать спиновую динамику и увидеть волны намагниченности прямо на экране вашего компьютера!

Математической моделью указанного выше процесса будет выступать уравнение Ландау-Лифшица-Гильберта:

Читать далее

Спросил пять нейросетей, какая из них лучше: себя хвалит не каждая, а ChatGPT называют все

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

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

Читать далее

Скачать базу GetCourse без API? Пожалуйста

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

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

Читать далее

Threatbit Simple Scanner v1.3: Что нового и почему

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

Антивирус почистил ваш компьютер, но присутствуют ограничения?

Тогда вам стоит попробовать Threatbit Simple Scanner. Вышло обновление v1.3! Узнайте про свежие функции данной программы. Данная утилита имеет карантин, улучшенный планировщик задач, и многое другое. Узнайте здесь!

Читать далее

Как запустить Qwen3.8-27B локально на RTX3090 (Win10)

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

В этой статье описывается подробная последовательность для Windows 10 и RTX3090 по установке всего необходимого программного обеспечения (Python, Git, CUDA Toolkit, CMake, MSVC, Ninja, OpenSSL), сборке llama.cpp из исходников с поддержкой GPU, скачивания модели Qwen3.8-27B с Hugging Face, её конвертации в формат GGUF и квантизации в Q4_K_M (чтобы она целиком поместилась в видеопамять GPU), а так же приведены параметры запуска для локального сервера llama.cpp с OpenAI-совместимым API и веб-интерфейсом, позволяющим общаться с моделью через чат в браузере. Каждый шаг сопровождается объяснением, зачем он нужен, что делает каждая команда и что означает каждый параметр у команды.

Читать далее

Проверка теории улучшения результата LoRA файн‑тюнинга на «умных» слоях

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

При LoRA‑дообучении адаптеры обычно применяются ко всем слоям модели, хотя активность разных слоев во время обработки промпта заметно различается. Возникает вопрос: можно ли выбрать более «умные», активные слои для конкретной темы и получить прирост качества?

Проверил гипотезу на Qwen3-1.7B: воспроизвёл метод из статьи Act‑LoRA, добавил свою метрику по градиентам, статистически проверил устойчивость сигнала и получил результат, который многое объясняет о том, как на самом деле работает LoRA‑дообучение.

Читать далее

ИИ-агент вместо тестировщика: 20 копеек за диалог и причина, почему вас не заменит llm

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

Привет, Хабр! Меня зовут Никита Хробостов, я QA-инженер в Just AI. Тестирую диалоговые системы: чат-ботов и голосовых ботов, часть из них с обращениями в RAG.

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

Чтобы было понятно про объемы. На проекте голосового бота у нас 13 активных сценариев, на чат-боте один. Чтобы проверить один сценарий целиком, нужно от 40 до сотни с лишним звонков, а тест-кейсов при этом в два-четыре раза больше: зависит от дизайна. На полную проверку одного небольшого сценария уходит 5–6 часов.

Проблема не столько в количестве тестов, сколько в том, что человек, который прогоняет пятидесятый тест-кейс за день, начинает говорить как автомат: короткими шаблонными фразами, потому что держит в голове покрытие, а не естественность речи. А реальный пользователь говорит совсем иначе. Именно на естественной речи NLU-часть и разваливается, и именно эти баги проще всего пропустить.

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

Читать далее

CP-SAT OR-Tools против Excel: решаем задачу оптимизации офисного пространства

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

Несколько раз в год отдел оптимизации офисного пространства Альфа‑Банка думает над тем, как разместить сотрудников бэк‑офиса по локациям на несколько лет вперёд. Раньше ребята делали это вручную: было медленно (месяц работы), больно (Excel) и неоптимально (никто не мог гарантировать, что найденная рассадка удовлетворяет всем ограничениям).

Коллеги хотели автоматизировать ручную работу — с этим они и пришли к нам. 

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

Читать далее

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

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

Решил посчитать, сколько раз языковые модели отзываются плохо о конкретной компании. Вроде простая задача: прогнать запросы через несколько моделей, разметить тональность ответов, поделить негативные на общее число. У меня получилось три негативных ответа из 358 — 0,8%. Число выглядело спокойным, и я чуть не отправил его в отчёт как есть.

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

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

Читать далее

6 новых методов обучения нейросетей, которые придуманы тысячелетия назад

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

Нейросетям в современном виде — несколько десятилетий. А вопросом «как вообще возникает знание?» люди занимаются больше двух тысяч лет. Значит, рассуждал я, где-то между Платоном, Аристотелем, Пирсом, Гегелем и Кантом наверняка лежит забытый метод обучения. Осталось перевести его с философского на PyTorch, вызвать backward().

План был отличный. Я взял список методов машинного обучения, наложил его на философские теории познания и сначала получил двенадцать «неиспользованных» идей. Потом начал проверять литературу — и половина списка исчезла.

Абдукция Пирса уже живёт в Abductive Learning и нейросимвольных системах. Скептическое воздержание от суждения называется selective prediction. Воплощённое познание ездит по лабораториям в роботах. Телеология устроилась в goal-conditioned reinforcement learning. Даже диалектика уже добралась до отдельных алгоритмических работ.

То есть бесплатной оптимизации у Платона не нашлось, а то что нашлось я упаковал здесь.

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

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

Читать далее

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

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

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

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

Привет! Я Евгений Бартенев, техлид и автор курса «Python-разработчик» в Практикуме. В этой статье попробую написать автомобильные гонки примерно в 50 строк кода на Python. Вся «графика» будет состоять из обычных символов терминала, а по пути мы немного разберёмся с ANSI-последовательностями, неблокирующим вводом и тем, как вообще устроен терминал.

Читать далее

Как разобрать файлы на Mac за 10–15 минут и удалить дубли фото, видео и документов + готовый скрипт

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

На Mac накопилось 860 ГБ файлов, среди которых одни и те же фото, видео и документы лежали в разных папках под разными именами. Я собрал Python-скрипт, который ищет точные дубли по SHA-256, переносит лишние копии в карантин и готовит план сортировки с возможностью отката. На первой проверке 108,5 ГБ нашлось 26,8 ГБ дублей.

В статье показываю весь процесс и даю готовый код.

Читать статью

Проверить доступность сайта для ИИ ботов через curl за 5 минут

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

Сайт открывается в браузере, отдаёт 200 OK, страница рендерится без единой ошибки. При этом ни ChatGPT, ни Claude, ни Perplexity ни разу не сослались на ваш контент. Первое, на что обычно грешат в этой ситуации, — качество текста или его SEO-разметку. На практике причина чаще лежит на уровень ниже: боты этих систем физически не получают ту страницу, которую видите вы.

Особенно часто это касается проектов на shared-хостинге или за CDN. Антибот-защита там нередко включена по умолчанию — провайдером или хостинг-панелью, а не осознанным решением владельца сайта. Cloudflare, WAF хостинга или модуль защиты от парсинга можно годами не замечать: обычным посетителям и поисковым ботам Google он не мешает, а вот новые краулеры вроде GPTBot или ClaudeBot под раздачу попадают в первую очередь — их либо ещё не занесли в белый список, либо режут по репутации IP-подсети или по самому User-Agent. Итог один: администратор сайта искренне не подозревает, что его контент невидим для ИИ-систем, потому что в браузере и в Google Search Console всё выглядит идеально.

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

Читать далее

Написал OSINT инструмент для проверки сайтов и оценки фишингового риска PhishIntel

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

Доброго времени суток, Хабр! Сейчас у меня творческие каникулы и я решил немного вернуться к теме, которой занимался большую часть своей жизни, поиску информации. Хотя последние пару лет я старался максимально отойти от прошлого, углубившись в разработку серверной части сложных приложений, машинное обучение, агентных систем на LLM, и всего такого «гражданского».

Но недавно наткнулся на новость о том, как мошенники использовали старую как мир схему «Мамонт» и вымышленный бренд «Топливо24», предлагая бензин, газ, и дизельное топливо на 20–30% дешевле рынка через фишинговые сайты. И самое печальное, что за неделю жулики заработали не менее 3.7 млн. рублей. А ведь у всех таких сайтов есть определенные метрики, технические характеристики, по которым можно выявить риски, и более того, собрать полезную информацию для дальнейшего расследования.

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

Получилось легковесное приложение на Python, не требующее в стандартной комплектации ничего, кроме стандартных библиотек. И чтобы получить первый отчет достаточно скачать репозиторий с GitHub, перейти в директорию, и запустить scan.py:

Читать далее

Подсчет транспорта в видеопотоке: пять мест, где я ошибся

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

Счетчик показал десятки проездов за одну красную фазу светофора. Машина была одна, и она стояла.

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

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

Ломался он пять раз. Метрики тоже будут, вместе с разбором, почему верить им нельзя.

Читать далее

ICO — как я осмелел и написал свой типизированный ML-фреймворк на Python

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

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

Читать далее

OpenIDE Pro в деле: Java, Spring, базы данных и AI-агенты в одной IDE

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

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

27 августа в 11:00 покажем OpenIDE Pro вживую: от разработки на Java и Spring до работы с базами данных и AI-агентами прямо в IDE.

👉 Зарегистрироваться на вебинар

Читать далее