Pull to refresh
4
0.8
Дмитрий Померанцев @pda0

User

Send message

Запускаем ComfyUI на GPU AMD Radeon в Docker

Level of difficultyMedium
Reading time7 min
Views6.2K

В этой статье я хочу рассказать об опыте контейнеризации с использованием видеокарты Radeon от AMD. В качестве примера возьмём ComfyUI и поместим его в контейнер. А в конце, для демонстрации успешной работы, создадим видео в стиле аниме.

Читать далее

Система Топологического Консенсуса (СТК)

Level of difficultyMedium
Reading time17 min
Views1.7K

Topological consensus system (TCS)

Автор: Александр Коробкин и его верная команда разработчиков

Сегодня мы рады представить вашему вниманию нашу новую инновационную технологию, основанную на протоколе Chord (https://en.wikipedia.org/wiki/Chord_(peer-to-peer)), но с рядом уникальных особенностей, которые увеличивают его функциональность и производительность. Мы назвали нашу технологию "СТК" (Система Топологического Консенсуса).

Предназначение СТК

СТК является распределенной хэш-таблицей (DHT), которая позволяет эффективно организовывать и управлять данными в распределенной системе. Она подходит для использования в различных приложениях, таких как:

Распределенные файловые системы: Обеспечение масштабируемого и надежного хранения данных.

Облачные решения: Организация данных и ресурсов в крупных облачных инфраструктурах.

Сетевые службы имен: Обеспечение эффективного и быстрого доступа к распределенным данным.

Интернет вещей (IoT): Управление огромными объемами данных от различных устройств в сети.

Системы контент-распределения (CDN): Оптимизация хранения и доступа к контенту для пользователей по всему миру.

Блокчейн приложения: Распределение и хранение транзакций и данных в сети блокчейн.

Читать далее

Циклические массивы

Level of difficultyEasy
Reading time3 min
Views3.1K

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

Например, с датчика непрерывно поступают данные с частотой дискретизации F=1000 Гц, которые сохраняются в массиве. Однако, для анализа данных используется конечное временное окно наблюдения, например, T=10 секунд. Таким образом, при поступлении нового отсчета данных необходимы лишь последние N=T*F=10 000 значений.

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

Читать далее

Об одном интересном свойстве триангуляции Делоне

Level of difficultyMedium
Reading time7 min
Views8.3K

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

Свойство: Если какой‑то отрезок AB не включен в триангуляцию Делоне, то существует путь из A в B по отрезкам из триангуляции, такой что каждый из отрезков в нем не длиннее |AB|. На картинке выше отсутствующий отрезок показан красным цветом, а путь — зеленым цветом.

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

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

Читать далее

Пишем сервис на GO. Runtime контроллер и Graceful Shutdown

Reading time20 min
Views30K


Напишем вместе HTTP-сервис на golang с нуля? Я уверен, что это довольно несложно. Для тех, кто каждую неделю этим занимается, моя статья не будет особенно интересна, но я все равно рекомендую взглянуть и оценить, возможно, ваши комментарии спасут кому-то жизнь. А может кое-какие из моих рассуждений спасут вашу.


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


Это первая часть. Первые шаги в нашем нелегком пути. И в этой статье мы попробуем достичь следующих целей:


  • Выработаем понимание структуры и жизненного цикла приложения.
  • Формализуем наше представление жизненного цикла на языке go.
Читать дальше →

Решаем задачу уровня «Невозможно». Сжатие хаотического бинарного кода. Суперпозиционные системы счисления

Level of difficultyHard
Reading time10 min
Views2.5K

Для наилучшего восприятия выделим основные пункты изложенного материала:

1.    Для чего необходимо сжатие информации и увеличение плотности записи.
2.    Проблемы в покорение хаоса, нерешенные математиками и ими же созданные.
3.    Простое решение проблемы сжатия абсолютно любого бинарного кода.
4.    Пути и методы дальнейшего развития сжатия бинарного кода.

Читать далее

Python: потоки по-другому

Reading time4 min
Views16K

Знаете, почему я решил написать эту статью? Я писал программу, где использовал потоки. Во время работы с ними в Python всё больше убеждаешь себя, что тут с ними всё плохо. Нет, не то, чтобы они плохо работали. Просто использовать их, мягко говоря, неудобно. Я решил написать простую, но более удобную библиотеку, и здесь поделюсь процессом.

P.S.: В конце оставлю ссылку на GitHub

Читать далее

Python threading или GIL нам почти не помеха

Reading time7 min
Views25K
Наверное всем, кто хоть раз интересовался Python, известно про GIL — его одновременно и сильное и слабое место.
Не мешая однопоточным скриптам работать, он ставит изрядные палки в колеса при многопоточной работе на CPU-bound задачах (когда потоки выполняются, а не висят попеременно в ожидании I/O и т.п.).
Подробности хорошо описаны в переводе двухгодичной давности. Побороть GIL в официальной сборке Python для настоящего распараллеливания потоков мы не можем, но можно пойти другим путем — запретить системе перебрасывать потоки Python между ядрами. В общем пост из серии, «если не нужно, но очень хочется» :)
Если вы знаете про processor/cpu affinity, пользовались ctypes и pywin32, то ничего нового не будет.
Читать дальше →

Многопоточность в Python: очевидное и невероятное

Level of difficultyMedium
Reading time4 min
Views43K

В данной статье я покажу на практическом примере как устроена многопоточность в Python, расскажу про потоки, примитивы синхронизации и о том зачем они нужны.

Изначально я планировал что это будет простая и короткая заметка, но пока готовил и тестировал код нашел интересный неочевидный момент связанных с внутренностями CPython, так что не спешите закрывать вкладку, даже если вы уверены что вы знаете о потоках в Python всё :)

Читать далее

8 продвинутых возможностей модуля logging в Python, которые вы не должны пропустить

Reading time20 min
Views103K

Понимайте свою программу без ущерба для производительности


image


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


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

Читать дальше →

Магия динамического маппинга. Реализация универсальной обработки файлов нефиксированной структуры на Python

Level of difficultyMedium
Reading time15 min
Views2.6K

Привет! На связи Никита Ильин из Spectr, Backend-разработчик с опытом более 5 лет. 

Один из проектов, с которым мы работаем, — IBP-платформа для планирования и прогнозирования спроса и продаж в ритейле. В статье поговорим о конкретной реализации для одной из задач в рамках этой платформы на Python и Django. При этом сама концепция может быть реализована абсолютно на любом фреймворке или платформе: Spring, .NET, Laravel.

Узнать о магии больше

Об извлечении кода в Python

Reading time6 min
Views6.7K
Я начал изучать Python в 2009 году, столкнувшись с очень нетривиальной и, кстати, необычной задачей на этом языке. Тогда я разрабатывал приложение для ПК, где графический пользовательский интерфейс создавался на PyQT, а основным языком в программе был Python.

Чтобы скрыть код, я встроил интерпретатор Python в самостоятельный исполняемый файл Windows. Это можно сделать при помощи множества инструментов (напр., pyinstaller, pyexe), все они функционально похожи. Они компилируют в байт-код ваши скрипты, написанные на Python, а далее, связывая их с интерпретатором, укладывают в исполняемый файл. Если компилировать скрипты, понижая их до байт-кода, то злоумышленникам становится сложнее добраться до вашего исходного кода и взломать ваше приложение. Байт-код приходится извлекать из исполняемого файла и декомпилировать. Кроме того, таким способом можно выполнять обфускацию кода, и в результате код становится гораздо сложнее понимать.
Читать дальше →

Засады многопоточности

Level of difficultyMedium
Reading time8 min
Views9.3K

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

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

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

Итак, создав ранее тест потоков (о нем подробнее см. [1]), гоняя его многократно и в разных режимах, я заметил, что пусть редко, но выскакивают некорректные результаты. В подобных случаях я грешу обычно на себя. А в данном случае тем более, т.к., что там скрывать, имею весьма небольшой опыт использования потоков.

Но в процессе экспериментов обнажились проблемы, которые сложно списать на недостаток опыты. Что-то при этом удалось преодолеть сразу, с чем-то пришлось повозиться, но были и те проблемы, которые не удалось поправить, даже при наличии достаточно большого опыте в программировании вообще.  О последнем, не об опыте, конечно, а о проблемах, и пойдет далее речь... И даже не о проблемах, а о довольно нежданных и негаданных "засадах", возникших на пути освоения многопоточности.

Читать далее

Основы архитектуры для джунов: построение масштабируемых и чистых приложений на python (Туториал)

Level of difficultyMedium
Reading time18 min
Views18K

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

Читать далее

Как открыть счет и карту в банках Киргизии в 2024 году?

Reading time8 min
Views26K

Кыргызстан — страна с достаточно лояльным законодательством в отношении граждан РФ. Здесь можно сравнительно легко открыть банковский счет и получить карту. Карты банков Киргизии также удобны для тех граждан России, которые не планируют жить в Кыргызстане, но не хотят лишаться возможностей оплачивать покупки в иностранных интернет-магазинах, заказывать авиабилеты, бронировать гостиничные номера в зарубежных отелях, принимать валютные переводы других стран. Несмотря на то, что банкинг Киргизии не самый передовой на постсоветском пространстве и отстает от казахстанского и грузинского, в связи с приходом российского IT в банках Киргизии, уровень потихоньку набирает обороты.

Читать далее

Полезные онлайн инструменты для дизайнеров и фрилансеров

Level of difficultyEasy
Reading time4 min
Views1.8K

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

Читать далее

Collapse OS: операционная система судного дня

Level of difficultyEasy
Reading time9 min
Views41K


Порыв ветра принёс удушливый запах гари с радиоактивных пустошей — видать, кочевники опять подожгли сухую траву. Сталкер осмотрелся: столб серого дыма лениво тянулся к небу прямо за терриконом, растворяясь в пелене низких облаков. Нужно спешить. Поудобнее перехватив автомат и поправив на поясе флягу с водой, он шагнул в густую тень руин, оставшихся от старого торгового центра. Денёк сегодня выдался неудачным: среди рассыпанного по развалинам хлама отыскалась лишь одна компьютерная плата, да и та оказалась изрядно оплавленной и закопчённой, словно душа грешника, каким-то чудом вырвавшаяся из преисподней…

Нет, автор не перепутал «Хабр» с «Author.Today» (хотя временами, признаться, я пишу и туда). По всей видимости, примерно так представляет себе недалёкое будущее человечества канадский программист Виржиль Дюпра, создавший на голом энтузиазме «операционную систему судного дня»: Collapse OS. По замыслу разработчика, эта операционка должна запускаться на самом слабом железе, которое можно будет отыскать после глобального катаклизма на дымящихся руинах земной цивилизации. Причём в своём нынешнем виде Collapse OS уже вполне работоспособна — на устройствах, оборудованных процессором Z80. Ну, а поскольку я являюсь счастливым обладателем аж целых двух «Спектрумов», я не мог устоять перед соблазном познакомиться с этой системой поближе. Что ж, давайте представим себе, что конец света уже наступил и посмотрим, с каким софтом нам предстоит иметь дело в столь печальных обстоятельствах. Надевайте противогазы, и в путь. Не отставайте!
Читать дальше →

Парочка open source решений по доставке уведомлений

Reading time6 min
Views9.5K

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

Читать далее

Блокировка Docker Hub для России. Без паники разбираемся как работать дальше

Level of difficultyMedium
Reading time9 min
Views84K

Главной новостью этой недели стала блокировка пользователей из России ресурсом Docker Hub. Она осуществляется по Geo IP.

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

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

Читать далее

Cloudflare положил наш сайт после того, как мы отказались выплатить 120 000 $ в течение 24 часов

Reading time9 min
Views132K
Я работаю системным оператором в довольно крупном онлайн-казино (мне представляется, что материал статьи может быть полезен читателям вне зависимости от их позиции касательно этичности казино в целом – упоминаю об этом просто для контекста). У нас около четырех миллионов активных пользователей в месяц. С Cloudflare мы охотно сотрудничаем с 2018 года по тарифу «Бизнес», который стоит 250 $ в месяц и предоставляет неплохие возможности, включая безлимитный трафик.

Нужно признать, 250 $ — невеликие деньги за те объемы трафика, которые мы прогоняли через Cloudflare. В основном мы используем Cloudflare для CDN (кэшируем весь свой статический контент) и для защиты от DDOS-атак – с этими задачами сервис хорошо справляется. Работать с ним просто, и обычно ни о чем не приходится особенно задумываться.

Я читал несколько статей на Hacker News, где рассказывалось, как в какой-то момент Cloudflare связывается с компаниями и начинает агрессивно навязывать корпоративный тариф на персональных условиях. Но я не ожидал, что всё будет настолько плохо.
Читать дальше →

Information

Rating
2,625-th
Location
Химки, Москва и Московская обл., Россия
Date of birth
Registered
Activity