Как стать автором
Поиск
Написать публикацию
Обновить
99.2

Windows *

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

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

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

Время на прочтение13 мин
Количество просмотров3.4K

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

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

Читать далее

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

Время на прочтение7 мин
Количество просмотров6.4K

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

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

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

Время на прочтение2 мин
Количество просмотров1.8K

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

Читать далее

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

Время на прочтение9 мин
Количество просмотров31K

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

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

Читать далее

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

Время на прочтение12 мин
Количество просмотров46K

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

Читать далее

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

Время на прочтение5 мин
Количество просмотров21K

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

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

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

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

Читать далее

Port Knocking для Windows

Время на прочтение9 мин
Количество просмотров12K

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

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

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

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

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

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

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

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

Читать далее

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

Время на прочтение3 мин
Количество просмотров16K

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

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

Читать далее

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

Время на прочтение12 мин
Количество просмотров9.2K

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

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

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

Читать далее

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

Время на прочтение7 мин
Количество просмотров2.8K

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

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

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

Читать далее

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

Время на прочтение13 мин
Количество просмотров12K

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров55K
image

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


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

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

Время на прочтение13 мин
Количество просмотров133K

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

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

Читать далее

Ближайшие события

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

Время на прочтение4 мин
Количество просмотров12K

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

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

Читать далее

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

Время на прочтение6 мин
Количество просмотров40K

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

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

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

Время на прочтение5 мин
Количество просмотров1.8K

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

Читать далее

Страх и ненависть в протоколе RDP

Время на прочтение9 мин
Количество просмотров28K

Все те из нас, кто всё ещё администрирует Windows на серверах, привыкли к протоколу RDP.

Последовательность: Win+R->mstsc зашита не то что в мышечной, а наверняка уже в генетической памяти.

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

В этой статье я расскажу, что происходило с протоколом RDP, куда всё катится и чего надо бояться.
Читать дальше →

PowerShell, HTML Agility Pack: разбор классов CSS на узле HTML-дерева

Время на прочтение7 мин
Количество просмотров1.6K

Я развиваю скрипт на языке PowerShell для обхода и визуализации HTML-дерева из файла на языке HTML для анализа кода HTML на ошибки. В частности, для поиска ошибок при именовании классов CSS. Для этого сначала нужно получить набор классов из атрибута class HTML-элементов, а затем перебрать эти названия классов в цикле. Для разбора HTML я использую библиотеку «HTML Agility Pack». Также я разбираю, как можно обработать ссылки на символы (их еще называют по-английски «HTML-entities») средствами указанной библиотеки.

Читать далее

SophiApp, или Как мы делали опенсорс программу для настройки Windows 10 & 11

Время на прочтение40 мин
Количество просмотров38K

Я от лица команды хочу показать вам SophiApp — графический наследник Sophia Script for Windows: бесплатная, портативная и полностью опенсорная программа для тонкой настройки Windows 10 и Windows 11.

В этой статье я расскажу, как оброненная мной фраза в комментарии 3 года назад под моей статьей из цикла про тонкую настройку Windows развернула мою жизнь на 180°, а чуть позже — и еще одного человека.

Все это время у меня была идея сделать графическую версию моего модуля на PowerShell, чтобы показать пользователям, каким должен быть современный твикер для Windows, какие функции может в себе нести, а главное — посыл программы: настроить (а не оптимизировать) ОС официальным образом, задокументированным Microsoft, ничего не сломав и не обещая мнимое увеличение производительности, чем грешат аналогичные программы, целенаправленно вводя пользователей в заблуждение.

Читать далее

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