К классическим методам апскейпа (увеличения) относятся методы, основанные на различных интерполяциях исходного изображения и фильтров, также не выходящих за рамки классических. Есть неклассические методы: нейросетевые (к исходному изображению добавляется память обученной нейросети и по этой смеси генерируется увеличенное изображение), или основанные на самоподобии (производится затратный поиск самоподобия, результат добавляется к исходному изображению и по этой смеси генерируется увеличенное изображение) методы. Но в данной статье будут рассмотрены только простые классические методы.
Во всех публикациях в сети по апскейпу в GIMP предлагается использование только встроенного средства "Размер изображения". А в большинстве указывается применение только фильтра "кубическая" для интерполяции. Продемонстрируем:
Читать далееБыть тем, кто указывает на ошибки, — не самая простая роль в команде. Особенно когда ты только начинаешь путь в QA. Твоя задача — находить баги, недоработки и несостыковки, а затем рассказывать о них разработчикам, дизайнерам или аналитикам. По сути, ты постоянно говоришь: «Здесь что-то не так», «Это не работает», «Так быть не должно».
Неудивительно, что в такой роли можно легко почувствовать себя неуверенно или неловко.
Читать далееНачиная с 2025 года базовая ставка по налогу на прибыль составляет 25%, но не для всех. Компании из реестра отечественного ПО не просто платят всего 3%, но и полностью освобождены от НДС, применяют пониженный тариф по страховым взносам и пользуются иной государственной поддержкой.
Давайте разбираться, как начать законно платить налог 3% вместо 25% и получать другие льготы от государства через регистрацию в реестре отечественного ПО.
Читать далееПредставьте, что информацию в квантовом компьютере можно передавать не за счёт сложных проводов и резонаторов, а прямым перемещением самих квантовых битов – как по конвейерной ленте. В недавних новостях сообщается, что российские учёные предложили именно такой подход: «летающие кубиты», управляемые магнитным полем. Их метод позволяет переключать квантовые регистры в режим передачи данных, где квантовое состояние передается по цепочке без потерь, подобно падающим костяшкам домино. Разберёмся, зачем нужны такие летающие кубиты, как они работают и какие перспективы открывают – опираясь на современные исследования и примеры в оптике и спиновых системах.
Квантовый интересУскорьте разработку React-компонентов! Эта статья о создании шаблонов для автоматизации рутинных задач: генерация папок, файлов, управление экспортами. Экономьте время и фокусируйтесь на главном.
Читать далееВ первой части статьи мы рассмотрели, как можно вручную ускорить Go-код с помощью векторизации и SIMD-инструкций, реализованных через Go-ассемблер. Написали простую, но показательно быструю реализацию sliceContains и увидели, что даже базовая векторизация может дать ускорение в 10–14 раз по сравнению со стандартной реализацией.
Во второй части статьи погрузились в практическое применение SIMD в Go-ассемблере, реализовали функцию SliceContainsV1 и изучили, как с помощью VADD, VDUP и других инструкций можно добиться 10–14-кратного ускорения простых задач.
Но возможности оптимизации Go-программ на этом не заканчиваются. В этой части мы пойдём дальше: рассмотрим другие техники низкоуровневой оптимизации — от использования C-кода и альтернативных компиляторов с поддержкой векторизации до работы с аппаратными транзакциями памяти на Intel. Поговорим о том, как внедрять ассемблер в продакшен-код, не боясь за его поддержку, и как обойти ограничения стандартного Go-компилятора.
Привет, Хабр! Меня зовут Игорь Панасюк, я работаю в Яндекс, преподаю в ИТМО, а также в свободное время выступаю на конференциях, делюсь опытом в соцсетях и помогаю развитию Go-сообщества, веду телеграм-канал и youtube-канал. Если вы уже знакомы с базовыми техниками векторизации, эта часть поможет глубже понять, как устроены продвинутые способы ускорения Go-кода и на что стоит обратить внимание при работе с архитектурно-зависимыми оптимизациями.
Читать далееПривет, Хабр! Сегодня я бы хотел вместе с вами погрузится в увлекательный мир зависимостей, а точнее их внедрение.
И так, давайте сначала разберемся что же такое зависимость?
Зависимость - это объект (или функция, в Python все - это объект), который нужен другому объекту или функции для их нормальной работы. Почти в каждого объекта есть одна или несколько зависимостей. Существует 2 основных метода их получение: создание зависимости непосредственно внутри функции либо же инъекция (внедрение).
Читать далееМикроконтроллеры, светодиоды, и немного кода — вот и вся палитра для минималистичного цифрового искусства. В статье подробно рассказывается, как выстроить архитектуру крошечных, но выразительных световых анимаций с использованием C++, платформы STM32 и адресных светодиодов WS2812. Немного философии, немного инженерии — и свет оживает по команде вашего кода.
Можно потратить годы, чтобы написать красивый рендерер. А можно взять 8 строк кода, светодиодную ленту и микроконтроллер, чтобы ночью на стене заиграла световая поэма. Эта статья — про второй путь.
Код, который светится, не имеет интерфейса, не показывает графику на экране и не заботится о фреймрейте. Его задача — свет. Живой, дышащий, мерцающий свет. В идеале — чтобы всё это поместилось в пару килобайт памяти и не жрало больше миллиампера на эффект.
Читать далееВсем привет! Меня зовут Валентина, и уже чуть больше семи лет я работаю в тестировании. Наверное, каждый, кто работает в IT-сфере, сталкивался с вопросом: «А что, правда сейчас можно пройти курс и сразу стать айтишником?». Предлагаю рассмотреть это популярное мнение и разобраться, действительно ли сейчас легко «войти в IT» через тестирование.
Мое небольшое исследование и выводы — под катом.
Читать далееКитай решил сделать ответный ход в торговом конфликте с США. Поднебесная ограничила экспорт редкоземельных металлов — ключевых ингредиентов для бытовой электроники, электромобилей, медицины и так далее. Формально это не тотальный запрет, а введение специальных лицензий на вывоз ресурсов. Но в реальности речь идет именно о полном ограничении экспорта. Давайте разбираться, как этот шаг меняет расклад для Китая, США, Европы и других игроков.
Читать далееМэтт Годболт, знаменитый разработчик Compiler Explorer — потрясающий человек, вам стоит найти в вебе и изучить весь созданный им контент. Именно этим и занимался, просматривая Correct by Construction: APIs That Are Easy to Use and Hard to Misuse. Я уже больше двадцати лет работаю с C/C++, поэтому эта тема была мне близка.
Когда я смотрел его доклад, ко мне постоянно приходила мысль: «Да! И именно поэтому в Rust это делается так». После просмотра видео я подумал, что этот доклад — отличный способ понять, как Rust помогает разработчикам не только в безопасности по памяти, и в своей статье я расскажу об этом.
Но прежде нам следует поговорить о поднятых Мэттом проблемах и о том, как он предлагает решать их в C++. Сделайте себе одолжение и посмотрите доклад целиком, а я разберу один из его пунктов.
Читать далееКаждые несколько десятилетий люди пугаются собственных изобретений.
Паровые машины — конец ткацкого ремесла.
Компиляторы — смерть ручного кода.
Облачные сервисы — айтишники останутся без работы.
Сегодня в роли «страшилки» выступает искусственный интеллект. Заголовки кричат: «ChatGPT уволит программистов», «Нейросети заменят дизайнеров», «AGI поставит крест на человечестве».
Однако, если внимательно посмотреть на то, как работают и внедряются ИИ-системы, станет ясно: это не враг, а инструмент. Именно так и стоит к нему относиться — без романтики и без апокалиптических прогнозов.
В этой статье я немного объясню важность graceful shutdown и расскажу как сделать плавное завершение работы твоего Spring Boot приложения, которое взаимодействует с Kafka.
Читать далееРечь пойдет о процессе создания универсального модуля для устройства Flipper Zero — Universal Module for Flipper Zero (UMF.0). Модуль разрабатывается с возможностью последующей модернизации пользователями. Проектирование модели осуществлялось в CAD-программе KOMPAS-3D V23, определены размеры корпуса с учётом запаса пространства (~127x62,5x33 мм). Конструкция состоит из четырёх основных элементов: передней панели с окном под экран и кнопки, задней крышки, основной части с разъёмами USB Type-C, Ethernet, GPIO, слота SD-карты и внутренней составляющей с электроникой (микроконтроллеры ESP32, радиомодули NRF24, E07-433M20S и другие компоненты). Особое внимание уделяется прочности конструкции посредством металлического каркаса толщиной примерно 4 мм. Общие детали и технические проблемы разработки будут освещены подробнее в дальнейшем развитии проекта.
А почему и нетСеттинг Второй мировой войны всегда занимал важное место в игровом сообществе. Мы подсчитали, что на данный момент существует около 726 игр, посвящённых событиям этого периода, которые так или иначе повлияли на историю гейминга. Даже если исключить из подсчёта дополнения, сиквелы и многочисленные DLC, всё равно остаётся примерно 397 уникальных проектов — и это впечатляет.
Сегодня я расскажу вам об одном жанре военных игр, который сейчас редко встречается в «чистом» виде, но именно с него начинались многие ключевые аспекты «геймификации» сеттинга Второй мировой войны в компьютерных играх. Дорогие геймеры, нас ждут симуляторы!
Читать далееУ Эндрю Хиггинса, родившегося в Небраске в 1886 году, было ничем не примечательное детство. Он часто попадал в неприятности из-за драк и в конце концов бросил школу. При этом мальчик рано начал интересоваться лодками. После службы в Национальной гвардии Небраски Эндрю уехал из штата, чтобы работать в лесной промышленности на побережье Мексиканского залива. Именно там он впервые начал думать об инновационных конструкциях лодок. Хиггинс придумал компактную мелководную лодку, которая могла бы поднимать и перевозить тяжелые грузы.
Читать далее… сбывшийся свет преломляется в физическом вакууме. Напоминает гравитационное линзирование, не правда ли?
Интуитивно ясно, что скорость фотона будет тем меньшей, чем большей будет плотность вероятности логического объединения взаимодействий с виртуальными ипостасями частиц, составляющих массивные объекты Вселенной. Если эта плотность вероятности окажется разной в разных точках фронта волны фотона, то при интерференции вторичных волн по Гюйгенсу результирующий фронт на каждом следующем интервале времени будет испытывать деформацию, в простейшем случае – поворачиваться. Похоже на движение шеренги в лесу: часть шеренги виртуальных ипостасей частицы, попавшая в более густой лес, будет, в среднем, продвигаться медленнее, и стройность шеренги нарушится. Если густота леса перед шеренгой линейно увеличится слева направо, то шеренга начнёт поворачивать вправо.
Поскольку вероятность столкнуться с частицами тяготеющего тела уменьшается с увеличением расстояния до центра его массы, уменьшается и масштабный коэффициент, то есть скорость света с удалением его от центра массы возрастает (поскольку увеличиваются и его частота, и длина волны). Попробуем прикинуть, как нахождение частицы в области пространственно зависимого k скажется на её состоянии.
Читать далееРассказ о том, как я написал свою вторую книгу, о создании тестового приложения-примера для неё, об истории написания пет-проекта длиной почти в 20 лет, о том как мужественно переписывал его несколько раз, о мыслях в процессе написания проекта, о размышлениях и страданиях в процессе написания книги, о развилках и муках выбора, о финальном завершении книги, о выпуске книги в продажу, об испытанных при этом эмоциях, о сроках и их срывах, о дневнике написания книги и всём остальном.
Читать далее