Делаем приложение на Расте с GUI нестандартным способом

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

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

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

Волей случая мне в руки попал ноутбук с гибридным процессором i7-13850HX, у которого есть производительные "Р" и эффективные "Е" ядра, и захотелось разобраться чуть поглубже, процессор довольно любопытный. Под катом мы сделаем несколько несложных замеров производительности.

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

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

Привер, Хабр!
В копилку статей про DeepSeek, которых здесь уже великое множество, хочу забросить ещё пять копеек в виде практического отчёта о инсталляции на Xeon, о котором меня попросили в комментариях к посту «Мануал по запуску полной модели DeepSeek-R1 локально...». Кому любопытно — может заглянуть под кат, ну а тем, кто уже выполнил упражнение по установке — вероятно будет совершенно неинтересно.

Привет, хабр! Под катом мы посетим китайский завод, где делают двигатели, заглянем внутрь ПЛК да попрограммируем его на разных языках, включая Си и C++, вплоть до ассемблера.
Вашему вниманию предлагается небольшая заметка, посвящённая особенностям хранения одноканальных (серых) 16 бит изображений (как беззнаковых, так и знаковых) в PNG формате. В некоторых случаях интенсивности пикселей, получаемые из такого файла могут не соответствовать изначальным интенсивностям, под катом мы заглянем во внутренности PNG файла и разберёмся, почему так происходит.

Вашему внимания предлагается небольшой этюд, посвящённый отображению 10-битного цвета (1024 градаций по каждому каналу) на мониторе через OpenGL при помощи библиотеки GLFW. Под катом мы напишем пару небольших приложений, открывающих два окна, где рассмотрим тестовые изображения в восьмибитном и десятибитном режимах на оборудовании, поддерживающем такую опцию. Включение 10 бит в основном позволяет избавиться от эффектов «полосатости» (также используются термины «бандинг» или «постеризация»), возникающих на протяжённых градиентах со слабо меняющейся интенсивностью, когда вы начинаете видеть границы между отдельными градациями, но по какой-либо причине не хотите пользоваться дизерингом, подмешивая в изображение шум.
В разговорах с коллегами, а также по отдельным постам на форумах я заметил, что даже относительно опытные разработчики порой не достаточно глубоко понимают особенности хранения изображений в памяти. Если вы знаете, что такое выравнивание на границу 64-x байт, а также термины типа «длина или шаг строки (LineWidth/StepWidth, Stride)», «зазоры выравнивания (Alignment Gaps)», кроме того в курсе размеров линий кэша и страниц памяти на вашем компьютере, то вам, вероятно, не будет интересно, а остальные, особенно те, кто интересуется обработкой изображений — могут ознакомиться с предлагаемым материалом, и, возможно найдут для себя что-то новое и полезное. Под катом будет немножко кода на Си и ассемблере, пара LabVIEW скриншотов, предполагается также, что у читателя есть базовые знания OpenCV. Для экспериментов понадобится компьютер с камушком, поддерживающим AVX2.

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

Система типов LabVIEW весьма похожа на "классические" языки программирования. В данной статье мы рассмотрим базовые типы — численные, булевские и строки (хотя формально строки не относятся к простым скалярным типам).
Это вторая статья-туториал по LabVIEW NXG, в которой мы рассмотрим основы работы с передней панелью (Front Panel).

Представим себе, что мы оказались в Америке, в отеле установлен кондиционер, но регулятор температуры там снабжён шкалой в градусах Фаренгейта. Мы хотим выставить комфортные двадцать градусов, но сколько это будет по шкале Фаренгейта? Вот и посчитаем это в LabVIEW NXG. Мы всё ещё на очень базовом уровне — под катом будет много слов о простом (чтобы в дальнейшем можно было рассказывать просто о сложном)
Это первая статья из небольшого цикла о графическом языке программирования G, который используется в LabVIEW. Язык этот пока не очень популярен — по индексу TIOBE на май 2020 года LabVIEW находится на сороковом месте аккурат между Julia и Haskell. Выпуск LabVIEW Community Edition даёт возможность значительно расширить аудиторию пользователей (раньше можно было пользоваться только триальной версией, а по истечении 45-и дней учиться "вприглядку").
Что ж, как говорили великие Керниган и Ритчи — "единственный способ научиться новому языку программирования — это начать на нём программировать". Этим и займёмся.
В первой части мы разберём основные элементы среды разработки, и нарисуем на блок-диаграмме наш первый "Hello, World!"

Статья-туториал рассчитана на тех, кто видит LabVIEW впервые. Под катом полсотни картинок примерно на семь мегабайт.
После публикации анонса о выпуске "Community Edition" версий LabVIEW в комментариях и на форумах были замечены отчёты о неудачной активации этих продуктов. Система активации в чём-то отдалённо похожа на Visual Studio Community, но есть тонкости, о которых и хотелось бы рассказать.
Вкратце — основная проблема заключается в том, что если создать аккаунт после скачивания и установки (причём там есть опция прямо в инсталляторе), то активация завершается неудачно, поскольку лицензия в этот момент отсутствует.
Ниже будет дано полное пошаговое описание процесса инсталляции и активации LabVIEW Community Edition — примерно полсотни скриншотов.



