
В этой статье я хочу рассказать об опыте контейнеризации с использованием видеокарты Radeon от AMD. В качестве примера возьмём ComfyUI и поместим его в контейнер. А в конце, для демонстрации успешной работы, создадим видео в стиле аниме.
User
В этой статье я хочу рассказать об опыте контейнеризации с использованием видеокарты Radeon от AMD. В качестве примера возьмём ComfyUI и поместим его в контейнер. А в конце, для демонстрации успешной работы, создадим видео в стиле аниме.
Topological consensus system (TCS)
Автор: Александр Коробкин и его верная команда разработчиков
Сегодня мы рады представить вашему вниманию нашу новую инновационную технологию, основанную на протоколе Chord (https://en.wikipedia.org/wiki/Chord_(peer-to-peer)), но с рядом уникальных особенностей, которые увеличивают его функциональность и производительность. Мы назвали нашу технологию "СТК" (Система Топологического Консенсуса).
Предназначение СТК
СТК является распределенной хэш-таблицей (DHT), которая позволяет эффективно организовывать и управлять данными в распределенной системе. Она подходит для использования в различных приложениях, таких как:
Распределенные файловые системы: Обеспечение масштабируемого и надежного хранения данных.
Облачные решения: Организация данных и ресурсов в крупных облачных инфраструктурах.
Сетевые службы имен: Обеспечение эффективного и быстрого доступа к распределенным данным.
Интернет вещей (IoT): Управление огромными объемами данных от различных устройств в сети.
Системы контент-распределения (CDN): Оптимизация хранения и доступа к контенту для пользователей по всему миру.
Блокчейн приложения: Распределение и хранение транзакций и данных в сети блокчейн.
Во многих задачах, связанных с обработкой данных, возникает проблема нехватки памяти для их хранения.
Например, с датчика непрерывно поступают данные с частотой дискретизации F=1000 Гц, которые сохраняются в массиве. Однако, для анализа данных используется конечное временное окно наблюдения, например, T=10 секунд. Таким образом, при поступлении нового отсчета данных необходимы лишь последние N=T*F=10 000 значений.
Подобные задачи возникают при фильтрации сигналов, построении индикаторов для торговли на биржах, в нейронных сетях.
В процессе решения некоторой задачи, я наткнулся на одно интересное свойство триангуляции Делоне, которое мне не удалось загуглить, как и его применение к решению разных задач. Я уверен, что не являюсь его первооткрывателем, но оно, по крайней мере, не является широко известным. Поэтому я решил написать о нем статью.
Свойство: Если какой‑то отрезок AB не включен в триангуляцию Делоне, то существует путь из A в B по отрезкам из триангуляции, такой что каждый из отрезков в нем не длиннее |AB|. На картинке выше отсутствующий отрезок показан красным цветом, а путь — зеленым цветом.
Дальше в статье я приведу пример его использования в задачах, а также формальное его доказательство.
Если вам известно более красивое доказательство этого свойства, или вы его где‑то видели — поделитесь, пожалуйста, в комментариях. Также буду благодарен, если вы поделитесь другими решениями для приведенных в статье задач или аналогичными задачами.
Напишем вместе HTTP-сервис на golang с нуля? Я уверен, что это довольно несложно. Для тех, кто каждую неделю этим занимается, моя статья не будет особенно интересна, но я все равно рекомендую взглянуть и оценить, возможно, ваши комментарии спасут кому-то жизнь. А может кое-какие из моих рассуждений спасут вашу.
Эта статья будет полезна тем, кто некоторое время назад начал осваивать язык программирования golang и уже достиг того момента, когда может попробовать окунуться в полный цикл разработки микросервисов на этом языке. Также она подойдет тем, кто решил сменить профильный язык, и по каким-то причинам его выбор пал на golang. Я не буду останавливаться на очевидных вещах вроде конструкций языка, парадигм конкурентности и прочего, но уделю время архитектуре приложения и постараюсь заострить внимание на моментах, в которых разработчик может допустить ошибку.
Это первая часть. Первые шаги в нашем нелегком пути. И в этой статье мы попробуем достичь следующих целей:
Для наилучшего восприятия выделим основные пункты изложенного материала:
1. Для чего необходимо сжатие информации и увеличение плотности записи.
2. Проблемы в покорение хаоса, нерешенные математиками и ими же созданные.
3. Простое решение проблемы сжатия абсолютно любого бинарного кода.
4. Пути и методы дальнейшего развития сжатия бинарного кода.
Знаете, почему я решил написать эту статью? Я писал программу, где использовал потоки. Во время работы с ними в Python всё больше убеждаешь себя, что тут с ними всё плохо. Нет, не то, чтобы они плохо работали. Просто использовать их, мягко говоря, неудобно. Я решил написать простую, но более удобную библиотеку, и здесь поделюсь процессом.
P.S.: В конце оставлю ссылку на GitHub
В данной статье я покажу на практическом примере как устроена многопоточность в Python, расскажу про потоки, примитивы синхронизации и о том зачем они нужны.
Изначально я планировал что это будет простая и короткая заметка, но пока готовил и тестировал код нашел интересный неочевидный момент связанных с внутренностями CPython, так что не спешите закрывать вкладку, даже если вы уверены что вы знаете о потоках в Python всё :)
Понимайте свою программу без ущерба для производительности
Журналирование — это очень важная часть разработки ПО. Оно помогает разработчикам лучше понимать выполнение программы и судить о дефектах и непредвиденных сбоях. Журнальное сообщение может хранить информацию наподобие текущего статуса программы или того, в каком месте она выполняется. Если происходит ошибка, то разработчики могут быстро найти строку кода, которая вызвала проблему, и действовать с учетом этого.
Python предоставляет довольно мощный и гибкий встроенный модуль logging со множеством возможностей. В этой статье я хочу поделиться восемью продвинутыми возможностями, которые будут полезны при разработке ПО.
Привет! На связи Никита Ильин из Spectr, Backend-разработчик с опытом более 5 лет.
Один из проектов, с которым мы работаем, — IBP-платформа для планирования и прогнозирования спроса и продаж в ритейле. В статье поговорим о конкретной реализации для одной из задач в рамках этой платформы на Python и Django. При этом сама концепция может быть реализована абсолютно на любом фреймворке или платформе: Spring, .NET, Laravel.
В данной статье я опишу свои самые свежие и яркие впечатления от многопоточного программирования. Это мои впечатления, мой опыт и я буду рад, если он будет полезен другим программистам.
В крайней статье я утверждал, что более серьезные проблемы их поджидают в случае взаимодействующих потоков. Но одно эти проблемы предполагать или даже предсказывать, а другое - столкнуться с ними непосредственно.
Предсказанное сбылось, как говорится, по полной программе. Думаю, что озвученные далее проблемы для кого-то не станут новостью, но будут и те, кто о них не подозревает, как не подозревал и я. А потому захотелось их зафиксировать и поделиться, с чем пришлось столкнуться. Ну, и рассказать, как я выкрутился, попав в не совсем привычные для меня ситуации (в автоматном программировании, подчеркну, они не возникли бы в принципе).
Итак, создав ранее тест потоков (о нем подробнее см. [1]), гоняя его многократно и в разных режимах, я заметил, что пусть редко, но выскакивают некорректные результаты. В подобных случаях я грешу обычно на себя. А в данном случае тем более, т.к., что там скрывать, имею весьма небольшой опыт использования потоков.
Но в процессе экспериментов обнажились проблемы, которые сложно списать на недостаток опыты. Что-то при этом удалось преодолеть сразу, с чем-то пришлось повозиться, но были и те проблемы, которые не удалось поправить, даже при наличии достаточно большого опыте в программировании вообще. О последнем, не об опыте, конечно, а о проблемах, и пойдет далее речь... И даже не о проблемах, а о довольно нежданных и негаданных "засадах", возникших на пути освоения многопоточности.
Когда речь идет о создании масштабируемых и поддерживаемых приложений, понимание таких важных понятий, как принципы чистого кода, архитектурные паттерны и SOLID практики проектирования, имеет решающее значение. Изучив эти принципы, новички получат представление о построении надежных, гибких и легко тестируемых приложений, что позволит им сохранить ясность кодовой базы и возможность ее сопровождения по мере роста их проектов.
Кыргызстан — страна с достаточно лояльным законодательством в отношении граждан РФ. Здесь можно сравнительно легко открыть банковский счет и получить карту. Карты банков Киргизии также удобны для тех граждан России, которые не планируют жить в Кыргызстане, но не хотят лишаться возможностей оплачивать покупки в иностранных интернет-магазинах, заказывать авиабилеты, бронировать гостиничные номера в зарубежных отелях, принимать валютные переводы других стран. Несмотря на то, что банкинг Киргизии не самый передовой на постсоветском пространстве и отстает от казахстанского и грузинского, в связи с приходом российского IT в банках Киргизии, уровень потихоньку набирает обороты.
В современном мире дизайнеры и фрилансеры сталкиваются с необходимостью быстро и эффективно редактировать различные медиафайлы, будь то видео, изображения или аудио. К счастью, существует множество онлайн инструментов, которые значительно упрощают этот процесс, позволяя выполнять все необходимые операции прямо в браузере, без необходимости установки сложного программного обеспечения. В этой статье мы рассмотрим наиболее полезные и удобные сервисы, которые помогут вам с легкостью обрезать видео, изменять размеры изображений, извлекать аудио и выполнять многие другие задачи. Эти инструменты подойдут как для профессионалов, так и для новичков, стремящихся улучшить свои медиафайлы с минимальными усилиями.
Открытые сервисы для управления уведомлениями на мобильных платформах пригодятся не только администраторам, но и разработчикам в рамках пет-проектов. Расскажем, какие инструменты можно использовать в качестве альтернативы проприетарным.
Главной новостью этой недели стала блокировка пользователей из России ресурсом Docker Hub. Она осуществляется по Geo IP.
Ирония в том, что у самого докера есть инструменты, чтобы обойти эту блокировку. Используем докер, чтобы обойти блокировку докера и дальше использовать докер.
В статье три проверенных мною способа, как получить доступ к ресурсу.