ReactOS и 2024 год

Вот и подходит к концу 2024 год. Давайте вспомним, чем он запомнился для ReactOS. Хоть на мой взгляд в этом году не было чего-то супер-особенного, но все равно у нас есть что вспомнить в данной статье.
Разработка под операционные системы от Microsoft
Вот и подходит к концу 2024 год. Давайте вспомним, чем он запомнился для ReactOS. Хоть на мой взгляд в этом году не было чего-то супер-особенного, но все равно у нас есть что вспомнить в данной статье.
Для визуализации данных на форме приложения, или для иллюстрации подсказок, не всегда можно использовать растровые изображения, так как при изменении размера формы или масштаба отображения на дисплее, изображения могут становиться размытыми и выглядят очень плохо. Именно здесь на помощь могут прийти векторные изображений, в формате SVG.
Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.
В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.
Как использовать наработанные в команде изображения пиктограмм при создании приложения в Lazarus IDE?
Обычно все используемые пиктограммы уже упакованы в шрифт, и здесь мы рассмотрим несколько вариантов его использования для оформления элементов приложения.
Нашего клиента донимали отчёты о вылетах, показывавшие, что его программа ломается на самой первой команде.
Я открыл один из дампов вылета, он оказался настолько странным, что отладчик даже не мог понять, что пошло не так.
В предыдущей статье Lazarus IDE для аналитика. Приемы работы в современном Free Pascal — 1 приведены приемы работы, связанные с базовым синтаксисом Free Pascal, в продолжении темы целесообразно привести материалы, касающиеся приемов работы и рекомендаций по ООП.
Появление Windows 95 в августе 1995 года стало поворотным моментом в истории компьютерной индустрии. Запуск новой системы сопровождался грандиозной рекламной кампанией. Microsoft не поскупилась на средства: Rolling Stones исполнили «Start Me Up» в рекламном ролике, Джей Лено рекламировал систему, а звезды «Друзей» снялись в обучающих видео. Очереди у магазинов, таких как CompUSA, растянулись на кварталы. Запуск системы стал событием, о котором говорили все.
Windows 95 стала не просто технологической новинкой, а частью поп-культуры. Запоминающийся звук запуска системы, узнаваемые иконки и простота использования стали символами эпохи и оставили неизгладимый след в памяти миллионов пользователей.
В этой статье мы расскажем, как опыты бихевиористов помогли создать знаменитую кнопку «Пуск», почему распространилась шутка о том, что Windows 95 заставляет плакать, понастальгируем над старым интерфейсом и разберем, почему именно Windows 95 определила взаимодействие с компьютерами и технологиями на многие годы вперед.
В этой статье я покажу, как устроена многослойная архитектура крупного реактивного web-приложения, и особенности его запуска под Electron. Материал будет полезен, если вы планируете начать свою разработку, хотите попробовать себя в роли архитектора, вас не пугает Shared Workers, Service Workers или, в конце концов, вы хотите это попробовать или разобраться.
Передо мной встала задача провести реверс-инжиниринг программы мониторинга артериального давления для устройства Spacelabs OnTrak 90227 ABP Monitor.
Устройство подключается через USB и определяется системой как виртуальный COM-порт.
Программа, с которой мне предстояло работать, 32 битная, написана на C++ с использованием MFC и была выпущена в 2010 году.
Основная цель — найти код, связанный с кнопками «Выгрузить монитор» и «Инициализировать монитор», чтобы осуществить обмен данными с устройством.
На основе найденного кода нужно разработать консольное приложение, которое будет инициализировать устройство для последующих измерений или считывать данные с устройства и записывать результаты в файл.
Понятно, что проектирование программного обеспечения это достаточно важный этап разработки, на котором необходимо продумать архитектуру будущего приложения, выбрать, например шаблон проектирования, продумать модель данных, типы и схемы базы данных, методы работы с данными, возможные варианты реализации API, варианты внешнего вида приложения и т.п. В материалах ниже будут приведена информация которая призвана помочь сделать такую работу более правильной.
Реализация SRWLock (Slim Reader/Writer Lock) на Windows может привести к серьёзным проблемам: многопоточное приложение может зависнуть (deadlock).
При частой конкуренции многих потоков, удерживающих shared_lock, и хотя бы одного потока, пытающегося получить unique_lock, возможно возникновение ситуации, когда потоки оказываются в состоянии взаимного ожидания. Код выглядит абсолютно корректным, но приложение зависает внутри вызова в WinAPI.
Это касается любых многопоточных программ для Windows, которые явно либо неявно используют SRWLock для синхронизации. В том числе написанных на старых реализациях Rust, пока в Rust не заменили реализацию для Windows, отказавшись от SRWLock (GitHub Issue). В том числе написанных на C# (фикса пока нет) и т.д.
После перехода Microsoft с .NET Framework на .NET Core программирование на C# стало более увлекательным, хотя некоторые аспекты изменились.
В частности, шаблон проекта Служба Windows (.NET Framework) создаёт класс, наследник от ServiceBase в пространстве имен System.ServiceProcess. Прогеру предлагается реализовать виртуальные методы базового класса OnStart и OnStop, которые задают действия, подлежащие выполнению при запуске (остановке) службы, что собственно и есть суть и назначение Службы Виндовз. Регистрация Службы в этом случае производится с помощью утилиты installUtil.exe, в .Net Core это делается утилитой SC.exe.
Реализовать службу на .NET Core (в моем случае .NET 9) не сложнее, но по другому, шаблон проекта теперь называется Worker Service (Microsoft), а рабочий класс наследуется от BackgroundService.
В этой статье я подробно опишу процесс создания, публикации и регистрации Службы в .Net 9 на примере службы для Telegram-бота (сокращенно — Телебот). Почему бот? Во-первых, писать Телебота на C# — это действительно приятно. Во-вторых, чтобы обеспечить его круглосуточную доступность на сервере под управлением Windows, логично использовать именно Службу Windows, которая будет поддерживать его работу в фоновом режиме и запускаться может сама при перезагрузке сервера.
В заключении рассмотрим как добавить логирование в стандартный виндовый EventLog и немного обсудим функционал самого Телебота.
При изучении иностранных языков, иногда хочется иметь двуязычные субтитры к понравившемуся видео, озвученных носителями языка. Но, что делать, если готовых субтитров нет, а самому распознать и перевести живую речь героев не хватает знаний? Особенно это касается тех, кто только-только начинает осваивать новый язык. Но, как говориться, безвыходных ситуаций не бывает, как минимум, всегда существует три выхода, даже если вас съели.
В данном случае мы воспользуемся современными технологиями для решения нашей задачи.
Библиотека Контролов EMX Controls для Avalonia UI позволяет вам создавать многофункциональные графические интерфейсы для Windows, Linux, macOS и WebAssembly. Почти полгода назад вышла первая версия контролов. С тех пор библиотека развивалась и расширялась – появились новые компоненты и новые функции. А сегодня у нас большая новость - мы выпускаем EAP (early-access preview) для версии 1.1.
Я использую PostgreSQL 12-й версии! На остальных не проверял! Соответственно, он у вас должен быть скачан и настроен для использования.
В одном из предыдущих постов мы уже разбирали работу в интерактивном блокноте на примере Google Colab. Возможность написания кода в ячейках (почти как в MS Excel!), удобное выполнение в интерактивном режиме и совмещение с блоками красиво оформленного текста делает работу с данными — в том числе биологическими — гораздо приятнее.
Кроме того, заполненный и хорошо оформленный блокнот избавляет от необходимости придумывать коду какой-то интерфейс и вместо решения биологических задач тратить время на фронтенд-разработку. Блокнот вполне можно передать коллегам, обладающим лишь минимальными навыками Python, чтобы они ввели в него свои данные и воспользовались им для расчётов. То есть это хороший вариант для работы с биологами из «мокрых» лабораторий.
У интерактивного блокнота есть и офлайн-реализация, которая называется Jupyter Notebook (Рис. 1). Установить его можно разными способами.
Ни для кого не секрет, что на смартфонах под управлением операционной системы Android можно клонировать приложения. Иногда этот функционал даже встроен в систему. Один из примеров тому – (не) всеми любимая MIUI, которая, начиная с двенадцатой версии, уже умела создавать дубликаты приложений.
Однако если речь идёт о Windows 10/11, то я не встречал решений для клонирования UWP-приложений. Давайте попробуем это исправить!
Прошло уже достаточно времени с публикации моей предыдущей статьи. За это время я значительно улучшил приложение. Миграция проекта с WPF на Avalonia UI, появление версий для Windows и Linux, обновленный дизайн, работа с числами типа float, а также другие возможности появились в новой версии моего Modbus терминала.
Обо всем об этом, а также небольшие заметки о разработке читайте в продолжении статьи.
Началось всё в самом конце 90-х годов, когда мне в руки попал диск с пиратской копией Delphi какой-торанней версии и на глаза попалась статья из Delphi World про управление лотком CD‑ROM'а. «Блин, да это же идея для вируса!», — подумал я...
В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++.
В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).