Обновить
1024K+

Python *

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

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

Как я создал формат изображений на уровне png в 16 лет

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

Всем привет, я разработал формат изображений.pi.

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

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

Сегодня я хочу рассказать о PIX (Pixel Scene) Format v16.0 — эволюции моего собственного бинарного формата изображений, который теперь способен на то, о чем большинство «популярных» форматов могут только мечтать.

Что такое PIX v16.0 и чем он отличается от того, что вы привыкли видеть?

Читать далее

Обновление MikroTik по SSH: Python-скрипт с автоматическим RouterBOARD upgrade

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

Обновление MikroTik — та ещё боль. То не влезешь по SSH, то забыл сделать routerboard upgrade, то устройство «уходит в себя» и не возвращается. Особенно, когда устройств не одно, а десятки. Вручную это превращается в спорт на выносливость и крепкие нервы.

Я решил, что хватит. Написал скрипт на Python, который делает всю грязную работу за меня: подключается, проверяет обновления, ставит новые пакеты, делает routerboard upgrade и даже ждёт, пока устройство снова появится в сети. Главное — всё логируется и работает аккуратно, как системный администратор в хорошем настроении.

В этой статье:

Читать далее

Классификация документов: гайд для обхода граблей

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

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

Читать далее

weakref.finalize: «почти IDisposable» для Python-объектов

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

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

Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable. Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production.

В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй (with ... as) шикарен, но требует явного вызова, а значит — дисциплины.

С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

Читать далее

Разработка LLM моделей для обновления кода приложений на более высокие версии фреймворков или языков программирования

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

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

Читать далее

Линейная регрессия в ML для самых маленьких

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

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

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

Читать далее

Пишем аддон для Fusion 360

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

Иногда есть необходимость создать расширение для САПР, которое будет генерировать модель по заданным параметрам. Статья на примере создания расширения для генерации волновых передач с промежуточными телами качения показывает, как можно это сделать в САПР Fusion 360.

Читать далее

5 техник, применяемых в анализе временных рядов, которые должен знать каждый. Часть 1

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

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

Читать далее

Создаем свой RAG: от загрузки данных до генерации ответов с LangGraph. Часть 2

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

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

Технология RAG (Retrieval-Augmented Generation) сочетает поиск информации с генерацией ответов, делая AI-системы более точными и осмысленными. В этой статье разберём практическую реализацию RAG с помощью LangGraph — гибкого инструмента для построения агентов и графов.

Читать далее

Spark on Kubernetes: наш путь к автоматизации через кастомный оператор Airflow

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

Всем привет! Меня зовут Дмитрий Третьяков, я ML Engineer в компании «Лента». Мы регулярно запускаем PySpark-приложения в Kubernetes-кластере, используя Airflow. Этот процесс важен для нашей ежедневной работы с данными, но в какой-то момент мы столкнулись с тем, что стандартный подход через SparkKubernetesOperator стал сдерживать развитие: не хватало гибкости, возникали сложности в сопровождении и процесс настройки был излишне сложным для разработчиков.

Читать далее

Что может пойти не так с merge() — дубли, потери, ошибки типов

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

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

Тонкое скрещивание DataFrame-ов в pandas по-прежнему остаётся источником прелестных багов: случайных дубликатов, потерянных строк и неуловимых NaN-ов. В статье рассмотрим эти проблемы.

Читать далее

Пример офлайн/онлайн инвентаризации на SimpleUI/1C как демонстрация новых возможностей платформы в 2025 году

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

Пример такой:

Сквозной пример с пошаговым разбором решения на фреймворке SimpleUI для Android совместно с 1С: оффлайновая работа с инвентаризацией, загрузка/выгрузка товаров и документов из 1С и результатов инвентаризации обратно в 1С, CV-возможности ActiveCV. Демонстрация новых механизмов SimpleUI и актуальных подходов к разработке в 2025 году.

Читать далее

Анализ и прогнозирование погодных условий

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

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

Читать далее

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

Генерация карт Таро при помощи OpenAI модели GPT-Image-1

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

Я решил сделать уникальную колоду карт Таро. Заказывать их у фриланс-художников дорого: каждая карта стоит от 5 USD, так что для полной колоды из 78 карт это выходит 390 USD. Перебрав разные генераторы изображений, я остановился на модели GPT-Image-1 от OpenAI, поскольку она выдаёт максимальное качество и минимальный процент ошибок. В среднем генерация одной карты занимает около минуты. Создание одной колоды обошлось мне в $25. В итоге я сгенерировал три колоды с уникальными стилями и потратил на это в общей сложности 75 USD.

Читать далее

Молекулярное шифрование: полимерный пароль

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


Неустанно растущий объем информации требует создания новых носителей. Данная потребность уже давно привела к тому, что ученые с особым интересом рассматривают ДНК в качестве идеального (по мнению многих) носителя информации. Проблема в том, что доступ к данным на молекулах является крайне сложным, дорогим и длительным процессом. Ученые из Техасского университета в Остине (США) разработали новый метод кодирования информации в синтетических молекулах, который может сталь более выгодной и эффективной альтернативой биомолекул. Как именно работает данный метод, что лежит в его основе, и что удалось с его помощью сделать? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

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

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

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

Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

Читать далее

Полмиллиона запросов за месяц: мой LLM-challenge и первые выводы

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

Привет, Хабр! Меня зовут Евгений, я работаю разработчиком в Университете Кембриджа (UK). В начале апреля я запустил llm7.io - полностью бесплатный LLM-провайдер, совместимый с популярными библиотеками chat completion. Цель была простая: проверить, насколько эффективно можно построить отказоустойчивую архитектуру под настоящую high-load-нагрузку, и при этом дать всем желающим доступ к мощным языковым моделям - без регистрации, API-токенов, смс и прочих барьеров.

Что произошло за месяц?

Webhook у Harbor или как я оповещения о пушах docker images нашей команды делал часть — 1

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

Руководителям групп разработки и членам команды часто приходится сталкиваться с проблемой информирования коллег о новых версиях docker image внутренних инструментов. Сообщения в общих чатах не всегда эффективны, а писать вручную — не лучшая практика. И тут мы рассмотрим разработку решения по автоматическому информированию.

Читать далее

База для старта разработки первого AI-агента

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

Хотите создать своего AI-агента, но не знаете, с чего начать? Эта статья даст вам необходимый минимум для разработки автономного помощника, способного понимать задачи, принимать решения и взаимодействовать с внешними сервисами.

AI-агенты — это умные программы на основе языковых моделей (LLM), которые не просто отвечают на вопросы, но и автоматизируют действия: ищут информацию, управляют приложениями или выполняют задачи по заданным правилам.

Мы разберём создание такого агента шаг за шагом на примере GigaChat API. Выбор пал на GigaChat из-за простоты его использования для пользователей из РФ и в случае необходимости переписать на другую llm не составит труда.

Читать далее

Рабочий чекер, попал ли ваш сайт под фильтр Гугл — бесплатно

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

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

Первым делом начал гуглить - чекер фильтров Гугла и вот это вот все. Естественно - в интернетах куча решений, но есть небольшое но... Они либо платные, либо условно-бесплатные, либо вообще непонятно как работают.

Ну что делать - надо реализовать собственное решение, что я и сделал.

Палю годноту, так как использование этого решения никак не повлияет на мою деятельность, а кому то может и полезно будет.

Суть решения достаточно проста есть код (он будет ниже), написанный на Python. Он реализует интерактивный дашборд для визуализации данных, полученных из Google Search Console, с использованием библиотеки Dash (на базе Plotly) для построения графиков.

Читать далее