Обновить
256K+

Python *

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

В этой статье описывается подробная последовательность для 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.3K

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее