Обновить
512K+

Python *

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

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

Еще немного красивых картинок на скатерти Улама

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

В прошлой статье показал скатерть Улама

( https://ru.wikipedia.org/wiki/Скатерть_Улама https://en.wikipedia.org/wiki/Ulam_spiral )

немного её усовершенствовал в косынку и померял с разных сторон.

Но вот если рисовать точки не по квадрату? Скатерть Улама рисуется обходом точки в форме квадрата, а если обходить по треуголнику или пятиугольнику?

Сохранится тонкая структура линий?

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

картинки

AI‑агент вместо ручного регресса: архитектура, метрики, инсайты

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

Привет, Хабр! На связи Владимир Бойко, ведущий iOS‑разработчик в Т‑Банке. В статье расскажу, как мы построили AI‑QA‑агента, который проходит тест‑кейсы так же, как это делает человек: запускает приложение на симуляторе, выполняет сценарий шаг за шагом, анализирует экраны с помощью VLM и автоматически сравнивает ожидаемый результат с фактическим.

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

Примерно в то же время я заканчивал задачи с VLM для Умной камеры и плотно общался с командой VLM Core — ребятами, которые развивают инфраструктуру мультимодальных моделей внутри банка. Вопрос напрашивался сам собой: а что если агент на базе VLM сможет выполнять эти проверки вместо людей?

Читать далее

Три модели с точностью 95%. Почему их цепочка может дать только 85%?

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

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

Вроде убедительно. Пока не нарисуешь, как именно соединены эти модели.

В первой статье я рассказывал, как использую генеративные модели для критического разбора инженерных решений. Во второй — «Активировать мало — недостаточно: почему AI‑роутеру могут понадобиться альтернативные стратегии» — перешёл к вопросу о маршрутизации и сохранении нескольких вариантов действия.

Теперь пора применить тот же критический подход к собственной гипотезе.

Начну с маленького примера, для которого не нужны видеокарта, API или обучение. Здесь есть точный расчёт и короткий код. Эксперимента с обученными моделями в этой статье пока нет: я хочу сначала понять, что именно он должен проверить.

Читать далее

Можно ли найти IDOR статическим анализом? Пишем ядро для Python

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

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

Читать далее

Своя телефония на своём железе: SMS через GSM‑шлюз и звонки из FreePBX в Telegram

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

Покупал GoIP, чтобы разобраться с телефонией на своём железе, а в итоге написал три проекта: сервер для GSM-шлюзов, клиент к нему из одной кодовой базы на Android, iOS, десктоп и браузер, и шлюз, через который внутренние номера FreePBX звонят обычными звонками Telegram

Читать далее

Когда антибот притворяется РКН: ложные заглушки и локальный Web UI в rkn-block-checker 0.6.0

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

В прошлой статье я рассказывал о базовой концепции rkn-block-checker - маленькой CLI-утилиты, которая пытается не просто сказать “сайт не открывается”, а раскладывает сбой по слоям сетевого стека: DNS (отравление) -> TCP (блокировка по IP) -> TLS (DPI на SNI) -> HTTP (заглушка провайдера)

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

Ниже разбор интересного бага с WAF, который заставил переписать логику вердиктов, и рассказ о том, как сделать локальный Web UI со стримингом на чистом Python без единой сторонней зависимости.

Читать далее

Нечеткая логика в ИБ: сокращаю очередь уязвимостей в 7,5 раз, сравниваю с CVSS, EPSS и методикой ФСТЭК

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

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

Есть куча песка. Уберем одну песчинку — куча останется кучей. Уберем еще — куча по-прежнему будет кучей. Но если каждый раз убирать по чуть-чуть, то рано или поздно кучу нельзя будет назвать таковой. И, конечно же, границы определения в таком случае сильно размыты. Кто-то мог бы утвердить, что куча начинается от 3 песчинок, но стоит ли такое делать? Не думаю.

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

Читать далее <3

Как голосовой робот сам закрывает окна в расписании стоматологов

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

Представьте ситуацию: администратор стоматологической клиники утром открывает расписание и видит, что пациент отменил прием в 10:00, а следующее свободное окно у этого врача только вечером. Время пропадает, врач ждет. А рядом, в листе ожидания, наверняка есть человек, который был бы рад попасть именно на это время. Надо только, чтобы кто-то ему об этом сообщил. 

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

Дальше покажем, как автоматизировать управление записями к стоматологу. Голосовой робот МТС Exolve будет сам звонить пациенту, предлагать перенести визит и сохранит изменения в расписании.

Читать далее

Речевые технологии для языка, у которого не было ни одного датасета — на одной потребительской видеокарте

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

Короткая версия: за несколько месяцев на одной домашней видеокарте у крымскотатарского языка появились работающее распознавание речи (WER 0.3463 → 0.1701) и синтез, который прочитал вслух целую книгу — шестнадцать глав, 1 час 58 минут звучания. На обучение моделей из этого ушли часы. Всё остальное время съели данные, проверки и выяснение того, какие из моих собственных измерений врут.

Вот про эту вторую часть я и хочу рассказать, потому что она переносится на любой язык, а первая — нет.

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

Читать далее

Утечка на 3.5 часа вперёд: как модель обманывала саму себя полтора месяца — и как мы это поймали

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

Разрыв между «отлично работает на истории» и «сливает в реальности» — классика ML на временных рядах. В нашем случае модель заглядывала в будущее на 3.5 часа через некорректный ресемплинг 4-часовых свечей.

Разбираем анатомию утечки, математику позиционного теста для её детекции и делимся сниппетом защиты от подобных ошибок.

Читать далее

Почему видео из аниме-плеера нельзя вставить в <video>, и как я всё-таки собрал синхронный просмотр на двоих

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

Идея была простая: смотреть аниме с друзьями так, чтобы пауза у одного означала паузу у всех. Не Discord Go Live с его артефактами и мылом, не «на счёт три жмём пробел», а честный общий плеер: кто угодно нажал — у всех перемоталось.

Я думал, это вечер работы. Получилось четыре нетривиальных проблемы, три из которых я не нашёл описанными нигде, и одна ночь отладки того, почему hls.js молча ничего не делает.

Под катом: почему прямая ссылка на видео бесполезна в браузере, как выглядит прокси с подписанными токенами и переписыванием HLS-плейлистов на лету, как синхронизировать плеер без вечного эха событий, и почему preload="none" ломает Media Source Extensions.

Читать далее

Собрал мониторинг упоминаний бренда в ChatGPT: три способа сбора данных показали три разные картины

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

Коротко: я снял ответы ChatGPT для клиента на 20 вопросов тремя способами. Бренд без подсказки прозвучал на одном вопросе из 19 в первом съёме и ни разу в двух других. У окна чата и API общих источников 17 из 49 и 68 доменов, поэтому способ съёма пишу рядом с каждой цифрой.

Читать далее

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

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

Документация устаревает быстрее, чем код успевает писаться? Рассказываем, как мы построили конвейер из Python-скриптов и нейросетей, который сам находит изменения в PHP-контроллерах и обновляет документацию API Invapi.

Читать далее

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

Безопасная чистилка Temp: как удалять файлы и ничего не сломать

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

У меня в %TEMP% тихо скопилось гигов пять, и я написал маленькую утилиту, которая чистит это — вручную кнопкой или само по расписанию.

Задача-то копеечная. Но пока писал, вылезла пара занятных вещей: почему «удалить всё из Temp» — так себе идея, как не провалиться по симлинку и не снести файлы за пределами папки, почему os.access на Windows врёт про права на запись, и как чистить по расписанию, вообще не оставляя процесс висеть в памяти.

Читать далее

Прыжок в бесконечность: как под капотом работает RBF SVM

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

Всех приветствую! Меня зовут Андрей, я студент 4 курса факультета математики и компьютерных наук, автор телеграм-канала Andre | Data Science. Все мы знаем, что направление машинного обучения сейчас на огромном хайпе - практически из-под каждого камня говорят о разных методах и о том, что они способны решить практически любую задачу. Но гайдов, которые бы подробно разбирали работу конкретного метода - от обычной загрузки данных до математического обоснования принципа его работы и визуализации каждого шага, - катастрофически мало.

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

Читать далее

lukidown — Telegram бот для загрузки всего отовсюду

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

Я написал бота на Python, используя библиотеки kurigram, yt‑dlp и ffmpeg. Данный бот умеет скачивать что‑то (в зависимости от площадки) из следующих платформ: YouTube, TikTok, Instagram, Pinterest, Rutube, VK, Spotify, Shazam, Yandex Music, SoundCloud, VK Music, Deezer, Apple Music, Tenor, JioSaavn, Twitch (только клипы), Snapchat, Reddit, Kinopoisk.

Читать далее

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

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

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

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

Читать далее

Положил http:// в строку, и ассемблер молча собрал 0 байт

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

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

Нельзя: вторая заплатка ломает то, что починила первая.

Куда делись байты?

Химический калькулятор для расчета фазового состава

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

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

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

Так появилась идея заранее просчитать ряд систем, сохранить результаты и потом эти результаты выдавать из базы данных. И я так и поступил. Выбрал температурный диапазон пошире (до 3000 К), 2 базы данных веществ (с газами и без).

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

После я проделал то же самое с 3мя элементами. Расчет занял около недели.

Четыре элемента рассчитывались около месяца.

Прикинув, сколько займёт расчёт 5ти элементов, я решил закончить на 4х.

После этого сделал бэкенд на сайт по извлечению соответствующего результата.

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

И конечно же мне после этого захотелось сделать соответствующее мобильное приложение. Быстро сделал WebView обёртку на сайт. Отправил в магазин Гугл – и получил не только отказ, но и удаление всех своих предыдущих приложений.

 Долго пытался зарегистрироваться на RuStore. И потом уже быстро получил отказ, мол WebView у нас не катируются.

Полез разбираться – и оказалось, что с того момента, как я написал последнее нормальное приложение, много чего поменялось. Придётся изучить и Kotlin, и много чего ещё. Либо писать с ИИ. Поэтому мысль о приложении отложил на будущее.

Читать далее

TLS PSK для Mamonsu: как мы добавили защищённую передачу PostgreSQL‑метрик в Zabbix

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

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

У нас получилось немного иначе.

При подключении нового пилотного контура PostgreSQL к Zabbix выяснилось, что Mamonsu успешно работает с базой данных и собирает метрики, но не может передать их на сервер мониторинга, если тот принимает от узла только защищённые соединения с TLS PSK.

Можно было изменить настройки Zabbix или построить обходную схему вокруг штатного zabbix_sender. Вместо этого мы решили доработать сам Mamonsu. В результате появилась поддержка TLS PSK и сертификатов с сохранением совместимости как со старыми серверными версиями Python, так и с современными версиями Python, где PSK уже поддерживается стандартным модулем ssl.

Доработку проверили на пилотном контуре, после чего отправили разработчикам Mamonsu в upstream.

Читать далее