Как стать автором
Обновить
50.22
Рейтинг

Разработка под Windows *

Разработка под операционные системы от Microsoft

Сначала показывать
Порог рейтинга

7-zip — нет времени спешить

Клиентская оптимизация *C++ *Реверс-инжиниринг *Разработка под Windows *
Из песочницы

Данной заметки не должно было быть, но мы живем не в идеальном мире. Есть много пользователей, что предпочли стандартному проводнику Windows альтернативу и наверное еще больше пользователей архиватора 7-zip. Имеет смысл поделиться с ними, подумал я и вот мы здесь.

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

Что делает обычный эникейщик в подобной ситуации? Конечно же берет в руки первый подвернувшийся профайлер.

Читать далее
Всего голосов 175: ↑175 и ↓0 +175
Просмотры 23K
Комментарии 47

Новости

Flutter Flame: глобальная оптимизация производительности игрового движка

Разработка мобильных приложений *Разработка игр *Dart *Разработка под Windows *Flutter *

Мой опыт работы с игровыми движками для Flutter привёл меня к, в целом, удручающим выводам: производительность хромает, и без специально проработанных «хаков» сделать что-то сложнее простой казуалочки представляется нереальной задачей.

Ранее я перечислил ряд подходов, которые смогут ускорить ваши вычисления от нескольких десятков до нескольких сотен раз. Однако, это не предел. Сегодня расскажу ещё об одном методе, который поможет вывести игровой движок Flame на новый уровень.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 931
Комментарии 0

Git for Windows: вклад в проект с помощью патча

WordPress *PowerShell *Git *Системы управления версиями *Разработка под Windows *
Tutorial

Существуют разные способы совместной работы над исходным кодом проекта. Так получилось, что сначала я познакомился с тем, как работать с командой «git push», посылая свои изменения в удаленный репозиторий, и как создать на сайте «GitHub» форк для отправки из него запроса на принятие изменений («pull request», сокращенно «PR»). И только после этого я узнал о том, что существует способ обмена изменениями в код с помощью файлов-патчей.

В этой статье я экспериментирую с командой «git diff», создаю тестовый проект и файл-патч из него в программах-оболочках «PowerShell» версии 7 и «Git Bash». Клонирую проект и применяю полученный файл-патч с помощью команды «git apply».

В последней части статьи я показываю, как можно применить программу «Git» для создания файла-патча с изменением в исходный код известного веб-приложения «WordPress». В конце этого примера я создаю сообщение об ошибке (ticket) в системе управления проектом «WordPress» и прикладываю к нему свой файл-патч.

Читать далее
Всего голосов 5: ↑1 и ↓4 -3
Просмотры 1.8K
Комментарии 5

Кастомизация диалоговых окон WixToolSet на примере windows installer и executable packages

Блог компании InfoWatch Разработка под Windows *

Приветствую!

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 793
Комментарии 4

Поиск бага регистра, приводящего к вылету Chrome

Программирование *Отладка *Разработка под Windows *
Перевод

«Эй ты, функция. Да, я к тебе обращаюсь. При очистке не забудь, пожалуйста, восстановить все мои регистры. Да, и этот тоже, ты что, думаешь, в Linux попала?»

Вот краткое описание проблемы, с которой я столкнулся. ABI (Application Binary Interface) платформы требует от функций, чтобы они сохраняли значения определённых регистров и восстанавливали их в случае использования, однако набор восстанавливаемых регистров зависит от платформы, и правила в Linux отличаются от правил в Windows. Возможно, поэтому я столкнулся с повреждением регистров Chrome в Windows. Но давайте начнём с самого начала.
Читать дальше →
Всего голосов 53: ↑53 и ↓0 +53
Просмотры 5.7K
Комментарии 14

Кастомный аллокатор для закрытого 3rd

Ненормальное программирование *C++ *Отладка *Реверс-инжиниринг *Разработка под Windows *

Существует ряд ситуаций, когда это имеет смысл. От полного контроля памяти, до вынужденной необходимости. К примеру, одна из возможных ситуаций:
1. Мы используем alignment аллокаторы.
2. Мы перегружаем какой-то класс и данные от нашей 3rd зависимости.
3. 3rd зависимость не использует alignment аллокаторы.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 1.1K
Комментарии 3

Git for Windows: работа с параметром core.autocrlf

PowerShell *Git *Системы управления версиями *Разработка под Windows *
Tutorial

Одна из настроек программы (системы управления версиями) «Git» называется «core.autocrlf». В этой статье я на практическом примере описываю, что происходит при каждом из трех возможных значений этой настройки. После этого я делаю выводы о том, для чего эта настройка нужна и в каких ситуациях какие ее значения можно использовать.

Всё описанное происходит в операционной системе «Windows 10». Работу с «Git» я показываю на примере работы из командной строки в программе «PowerShell» версии 7. Используемый дистрибутив «Git» называется «Git for Windows».

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 2.7K
Комментарии 10

Как выбрать язык программирования и начать карьеру: советы от разработчика, занимающегося наймом

Блог компании Leader-ID Разработка веб-сайтов *Программирование *Разработка мобильных приложений *Разработка под Windows *

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

Читать далее
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 9.4K
Комментарии 9

Сохранение изображения в БД C#

.NET *Администрирование баз данных *C# *Разработка под Windows *
Tutorial

Порой необходимо сохранить те или иные изображения в базу данных. Сохранять в бд путь до картинки не самый оптимальный выход из ситуации, так как это будет работать локально на одном пк и то не всегда.

Оптимальным выходом из данной ситуации является представление изображения в виде массива байтов byte[]

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

Любой файл можно рассматривать как набор байтов, поэтому массив байтов является результатом чтения файла в виде двоичных данных. Файл также может быть декодирован как определенный формат, например, текстовый файл, результатом которого является строка, или формат сжатого изображения (JPEG, GIF, PNG и т. д.), результатом которого является Bitmap.

Читать далее
Всего голосов 19: ↑1 и ↓18 -17
Просмотры 3.7K
Комментарии 19

Port Knocking для Windows

Информационная безопасность *Системное администрирование *Системное программирование *PowerShell *Разработка под Windows *
Recovery mode

Мне довольно часто приходится настраивать "одинокие" терминальные сервера(и не только терминальные) в "Облаках", с "легким, быстрым" доступом к нему по RDP.

Все объяснения для пользователей\заказчиков, что такие сервера должны быть доступны только с доверенных IP или через VPN воспринимаются "в штыки" и тогда приходится рисковать...

Конечно сервер защищается от Bruteforce(а), используются парольная политика, нестандартный порт, но все равно сервер постоянно под угрозой, в среднем в месяц можно увидеть по 15000 попыток подобрать пароль.

Такое обстоятельство дел заставило меня подумать о простом и действенном способе защиты сервера и в то же время этот способ не должен усложнить пользователям подключение к серверу.

Первое что пришло в голову - Port Knocking, использую его на RouterOS, но беглое гугление показало что для Windows не существует подобного штатного функционала, поиск сторонних средств которые могли бы помочь организовать задуманное не дал результата,  больше покопавшись нашел только странные и страшные поделки на Java не внушавшие доверия.

Тогда решил написать PortKnocking для Windows. Написать его решил на PowerShell, чтоб не пришлось устанавливать на сервер дополнительно Java или Python.

Т.к. есть опыт c телеграм ботами(@SuperMon_Bot), решил добавить и информирование о работе PortKnocking через телеграм.

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

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 4.2K
Комментарии 34

SiteWatcher — наблюдаем за изменениями на страницах сайтов

Программирование *GitHub *Разработка под Windows *

Я не являюсь разработчиком (я себя таковым не считаю) и не занимаюсь программированием для заработка (хотя раньше такое и было), но иногда возникает острое желание чего-нибудь написать для себя, чтоб оно работало, как надо мне, чтоб выглядело, как я хочу, и чтоб была возможность что-то изменить в поведении программы/скрипта/сайта.

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

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 6.8K
Комментарии 19

Windows 10, PowerShell: файл сертификата открытого ключа (X.509) изнутри

Информационная безопасность *Криптография *PowerShell *Разработка под Windows *
Tutorial

Немного о том, как устроено в «Windows 10» хранение сертификатов открытого ключа, а также о том, как можно просматривать хранилища сертификатов и свойства отдельных сертификатов.

В двух словах рассказано о том, какие инструменты можно использовать для работы с сертификатами открытого ключа, в частности — про сохраненные консоли certlm.msc, certmgr.msc и работу с сертификатами из программы-оболочки PowerShell.

На практическом примере показано, как из командной строки PowerShell можно просмотреть свойства определенного сертификата и как расшифровывать свойства, в которых хранятся «сырые» данные в виде байтовых массивов. Коротко рассказано про язык описания данных ASN.1, способ сериализации DER и стандартизированное дерево идентификаторов объектов OID. Всё это показано на практическом примере.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 3.9K
Комментарии 6

Микро автоматизация банка [обмен данными между банком и ИФНС в исполнение 440-п ЦБ РФ]

Разработка под Windows *
Из песочницы

С этой задачей я столкнулся абсолютно случайно. Мне ее подкинул старый знакомый, сотрудник ИТ не очень крупного универсального Банка, уверенно входящего в ТОП 100, но находящийся ближе к концу данного списка. Задача относится именно к Розничному сегменту бизнеса. В Банке есть команда своих программистов, но они расписаны на несколько месяцев вперед на исполнение более крупных и приоритетных (с точки зрения «бизнеса» задач. А сама задача организации обмена согласно 440-п ЦБ РФ, упала на моего знакомого неформально, когда пользователи пожаловались на свою тяжелую внутрибанковскую жизнь и он по доброте душевной решил им помочь. 

Этот пост Вам интересен, если:

Вы сотрудник Банка;
Вы работаете в ИТ подразделения Банка;
Задача, о которой пойдет речь, еще не автоматизирована;
Банк обслуживает физических лиц;
В Банке используется ПО АБС «Диасофт»;
В Банке используется ПО КОМИТА;
Банк ежедневно взаимодействует с ИФНС согласно 440-п ЦБ РФ.

Читать далее
Всего голосов 11: ↑7 и ↓4 +3
Просмотры 1.6K
Комментарии 8

От Web до Desktop за 2 недели: технология Electron на практике

Блог компании VK JavaScript *Разработка под MacOS *Разработка под Linux *Разработка под Windows *

Если у вас есть компьютер и вы используете его по назначению, то скорее всего вы так или иначе работали с приложениями на Electron (даже если об этом не знали).

Меня зовут Сергей Володин, я руковожу командой разработки VK WorkMail. В этой статье я расскажу, как на основе Electron мы за две недели создали PoC кроссплатформенного настольного приложения Почты, что узнали о технологии и к каким выводам пришли.

Читать далее
Всего голосов 34: ↑30 и ↓4 +26
Просмотры 6K
Комментарии 31

Истории

Запуск WSL (Windows Subsystem for Linux) с systemd под Windows 11

Настройка Linux *Разработка под Windows *
Tutorial
image

В новостях прошла весть, что теперь WSL поддерживает демон systemd. В качестве преимущества использования systemd предлагается установка и запуск приложений и сервисов через snap. Для примера приведены Nextcloud, LXD, MySQL, MicroK8s и Docker. Я пока в преимущества самого snap не вникал. Но возможность запуска и управления демонами через systemd привлекает.


Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 9.4K
Комментарии 22

Нововведения Windows 11 2022 Update (22H2)

Интерфейсы *Разработка под Windows *Софт
Перевод

Релизной версией Windows 11 2022 Update (22H2) стала 22621.382.ni_release_svc_prod1.220804-1759, которая уже доступна для скачивания.

В Windows 11 22H2 появились новые параметры для настройки раздела "Рекомендуем" на начальном экране. Хотя отключить и удалить раздел по-прежнему невозможно, теперь можно выбрать один из трех вариантов, чтобы показывать меньше рекомендаций и больше закреплений.

Читать далее
Всего голосов 47: ↑45 и ↓2 +43
Просмотры 77K
Комментарии 122

Как сделать стриминговый сервис

Разработка мобильных приложений *Разработка под Windows *
Из песочницы

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

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

Читать далее
Всего голосов 14: ↑9 и ↓5 +4
Просмотры 5.3K
Комментарии 9

Примеры кошмарного программирования вокруг нас. Выученная беспомощность

Блог компании RUVDS.com Ненормальное программирование *Программирование *Системное программирование *Разработка под Windows *

Нет в мире совершенства. Куда ни глянь — всюду костыли и компромиссы. Вроде каждый в отдельности хочет сделать как лучше, но чем больше участников — тем сильнее хаос…

Возьмём классический пример — реестр Windows. Этот странный артефакт инженерной мысли представляет некое подобие иерархической БД для хранения абсолютно всех настроек — и системных, и приложений, и драйверов. Центральное бинарное хранилище заменило массу файлов .ini, разбросанных по всей системе и должно было упростить жизнь. Но вышло наоборот. И глядя на монструозный тормозящий конструкт, возникает только один вопрос: как это исправить? Ответ тоже простой: «Если вкратце, то никак». И так во всём. Мы создаём монстров, а потом не можем от них избавиться.
Читать дальше →
Всего голосов 101: ↑84 и ↓17 +67
Просмотры 38K
Комментарии 184

IopReadyDeviceObjects: медвежья услуга от ядра и как с ней сосуществовать

Системное программирование *Разработка под Windows *

Всем привет! Столкнулся я недавно с одной интересной и не вполне понятной с первого взгляда проблемой в KMDF драйвере, разработкой которого я в данный момент занимаюсь. Опыта в этой сфере у меня не много - это первый проект на KMDF которым я занимаюсь. В деталях описывать проект не могу (всё-таки частная собственность), да это и не нужно, но идея такова: есть 2 драйвера, один из них становится в стек устройств определённого класса и предоставляет интерфейс через который второй драйвер может подписаться на добавление новых и уже подключенных устройств (несколько callback-ов), получать обратные вызовы на определённых операциях и так далее. Таким образом первый драйвер находится в системе постоянно и для своей замены требует перезагрузки и содержит минимальную логику, а второй может свободно обновляться на ходу (без перезагрузки) и принимает решения. Логика этого драйвера подразумевает создание control device для каждого устройства-фильтра, установленного в стек (нужен дополнительный функционал без коллизий с функционалом стека) - и вот тут у меня возникла проблема, на определение причин которой и дальнейшее решение я потратил довольно много времени. Статью об этом решил написать именно сегодня - как-никак это неплохой способ сделать что-то полезное на свой профессиональный юбилей - 10 лет в разработке :-)

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 1.2K
Комментарии 7

Вклад авторов

Работа