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

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

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

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

История одного перехода с gcc на clang

Блог компании Timeweb Cloud C++ *Компиляторы *Разработка под Linux *Разработка под Windows *
Tutorial


На прошлой неделе, после нескольких месяцев разработки, вышла очередная версия языка программирования NewLang. Одной из технических особенностей данного релиза является переход на использования компилятора clang вместо gcc.

Данная статья описывает причины смены компилятора, некоторые особенности этого процесса, проблемы, которые приходилось решать и итоговые выводы.

Автор надеется, что эта информация может оказаться полезной и позволит сэкономить кучу времени, если заранее знать некоторые подводные камни, а так же положительные стороны от перехода на clang.

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 445
Комментарии 0

Новости

Есть ещё выдающиеся программисты, кроме Торвальдса, Беллара и Дина? Знакомьтесь — Джастин Танни

Блог компании RUVDS.com Системное программирование *Разработка под Linux *Разработка под Windows *Биографии гиков
Программистам не дают Нобелевские премии. Хотя некоторые заслуживают. В нашей отрасли есть настоящие герои с выдающимися достижениями. Эти люди не строят карьеру, перепрыгивая с одной должности на другую, прокачивая зарплату. Создаётся впечатление, что им карьера вообще не важна. В силу высокого интеллекта, врождённой любознательности и особого характера эти люди не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

На Хабре рассказывали про «чак норрисов» от программирования, таких как Линус Торвальдс, Фабрис Беллар и Джефф Дин. Конечно, есть и другие феноменальные таланты, их много. Зачастую эти люди далеки от публичности, никогда не давали интервью и известны только по никам. Но их объединяет одно — выдающиеся индивидуальные разработки, которые разрывают шаблон и выделяются из общей массы.

Мы собирали этот список несколько лет. Начнём с последних строчек своебразного хит-парада… Знакомьтесь — Джастин Танни (Justine Tunney), хакерша и гений системного программирования.
Читать дальше →
Всего голосов 67: ↑66 и ↓1 +65
Просмотры 7.8K
Комментарии 4

Flutter Flame: подходы к оптимизации

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

В предыдущей статье я разбирал проблемы Bonfire и причины, по которым он не очень подходит для сложных игр. Несмотря на то, что чистый Flame намного легче, там тоже не всё так гладко. В этой статье я поделюсь своими рецептами увеличения производительности игры и распишу причины, почему это работает. Хочу сразу заметить, что среди этих рецептов нет серебряных пуль, и маловероятно получить существенный буст, применив только что-то одно. Однако в комплексе они достаточно эффективно работают – проверено часами медитации над CPU-профайлером.

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

PowerShell: обход и визуализация HTML-дерева из файла

PowerShell *Алгоритмы *HTML *Визуализация данных *Разработка под Windows *
Tutorial

Вывод HTML-дерева из локального файла в окно программы-оболочки «Windows PowerShell» версии 5.1 (или в окно программы-оболочки «PowerShell» версии 7) с помощью скрипта на языке PowerShell в операционной системе «Windows 10». Используется библиотека «HTML Agility Pack».

В качестве упражнения в алгоритмах и структурах данных рассмотрено несколько способов обхода и вывода HTML-дерева: NLR (прямой с приоритетом обхода потомков слева направо), NRL (прямой с приоритетом обхода потомков справа налево), LRN (обратный). Примеры практической реализации.

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

PowerShell: HTML Agility Pack и AngleSharp

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

Как получить и использовать библиотеки «HTML Agility Pack» и «AngleSharp» для создания простого парсера HTML в скрипте для программ-оболочек «Windows PowerShell» версии 5.1 и «PowerShell» версии 7 в операционной системе «Windows 10». Приведен простой пример кода для обеих библиотек.

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

Tkinter, раскрытие потенциала. + Игра на рабочем столе

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

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

ВАЖНО! Tkinter - не лучшее решение для создания больших приложений. И по большей части эта статья нацелена на начинающих программистов, которые уже имеют представление о библиотеке и хотят рыть дальше.

Если вы плохо знакомы с Tkinter, вот прекрасный курс, рекомендую >>>

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

Философия борьбы с NAT

C++ *Сетевые технологии *Серверное администрирование *Разработка под Linux *Разработка под Windows *

Приветствую всех.

В этом посте я расскажу о назначении и устройстве небольшой, но полезной утилиты plexus, работа над исходной версией которой недавно завершилась. Утилита написана на C++, но этот материал будет интересен не только и не столько пишущим на плюсах, но и тем кто имеет отношение к сетевому программированию.

Небольшая ремарка.

Все мы видим как радикально изменила мир цифровая революция. Весь мир, без преувеличения, переселился в Интернет. Первыми были ученые и программисты, за ними последовала продвинутая молодежь, далее пришел бизнес и все закрутилось. Реклама, бурное развитие социальных сетей, появление IT гигантов. С опозданием и скрипом, чертыхаясь, порой как слон в посудной лавке, подтянулось и государство. Однако, если в 90-х и 00-х Интернет был своеобразной территорией свободы и даже анархии, то теперь он все больше становится похожим на Матрицу, ну или некоторое множество её вариаций. Парадокс в том, что Интернет задумывался как децентрализованная система, но в социальном его воплощении движется в сторону гиперцентрализации. Торрент, Tor, криптовалюты это скорее история ярких бунтов на корабле подтверждающих неоднозначность его курса. Причин такому развитию много, но главная пожалуй в том, что Сеть при всех возможностях расширяющих социальные границы это еще и гигантские возможности по сбору и анализу информации, и как следствие торговля и манипулирование информацией и даже формирование информационных потоков. И все это умножается с развитием ИИ. Даже посто чувствовать себя рыбкой в аквариуме не очень приятно, не говоря уже о прочих угрозах. Виртуальная реальность, хоть и является проекцией реальной жизни, но сильно обделяет нас одной важной естественной возможностью из реального мира. Это возможность устанавливать и развивать связи без посредников. Распределенные системы построенные на peer-to-peer связях в социальном сегменте Сети пока скорее экзотика. Исключение разве что криптовалюты. Тем не менее непрерывные скандалы с утечками персональных данных, слежками, блокировками, модерациями и манипуляциями в социальных сетях, на мой взгляд формируют соответствующий социальный запрос. С чисто технической стороны, одним из препятствий тормозящим многие годы широкое развитие распределенных систем является все никак не уходящий IPv4 и порожденный им NAT. Собственно об этом мы дальше и поговорим. Кому интересно съедаем красную пилюлю и отправляемся в суровый Зион. Синяя пилюля вернет вас назад в мир сладких грез.

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

Использование цвета в терминале

PowerShell *Оболочки *Usability *Разработка под Windows *История IT
Tutorial

Я пишу небольшие скрипты для работы в программах-оболочках «Windows PowerShell» версии 5.1 и «PowerShell» версии 7 в операционной системе «Windows 10». Иногда тянет подсветить текстовый вывод в консоль разными цветами. В этой статье я хочу рассказать о паре грабель, на которые можно при этом наступить.

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

PowerShell: парсер HTML, устаревшие методы

Программирование *.NET *PowerShell *Оболочки *Разработка под Windows *
Из песочницы

Обзор двух устаревших методов преобразования кода на языке HTML в объект (HTML-парсер) на скриптовом языке PowerShell в операционной системе Windows 10.

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

Отладка драйвера Windows

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

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

Хочу ронять Windows в BSOD
Всего голосов 57: ↑57 и ↓0 +57
Просмотры 9.3K
Комментарии 62

Flutter на Python

Python *Разработка мобильных приложений *Разработка под MacOS *Разработка под Linux *Разработка под Windows *


Приветствую вас, дорогие любители и знатоки Python! Знали ли вы, что можно разрабатывать кросплатформенные приложения, используя всю мощь и выразительность своего любимого змеиного языка в связке с ныне популярным фреймворком Flutter? Оказывается, такая возможность есть! Всех заинтересовавшихся прошу под кат за деталями.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 8.1K
Комментарии 33

Миниатюрное десктопное GUI приложение на PHP — 2 МБ хватит для всех

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

Я часто заморачиваюсь на тему минимизации размера своих GUI приложений. Прошлая моя статья была про Nuklear. Но сейчас захотелось более современных технологий. Чтоб HTML5, CSS3 и PHP. Чтоб приложение ни от чего не зависело, т.е. построено по принципу "всё включено". И чтоб конечный размер приложения не превысил 2 МБ. Получится ли?

В Linux я часто пользуюсь утилитой df. Мне её очень не хватает в Windows, а искать аналоги лень. Так что было сделано волевое решение сделать свою, на РНР 5, с бутстрапом и JQuery.

Читать далее
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 12K
Комментарии 57

Домашний CICD: Docker, Jenkins и Nexus3

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

Практика CI/CD широко распространена в современном мире и представить ручной деплой у FAANG с их бесчисленными ежедневными изменениями просто невозможно. То же будет справедливо и для продуктовых компаний: десятки ручных деплоев в день вытянуть можно, но это потребует колоссальных ресурсов.

Освоить эту практику можно дома, в среде, где что-то сломать не страшно, ведь всегда можно начать все с самого начала. В этом гайде рассмотрим как развернуть и настроить Jenkins в Docker, как создать агентов для сборки, а еще запушим образ в приватный Nexus.

Настроить CI/CD этому господину
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 7.6K
Комментарии 1

Python GUI. Обзор Hero Animation в библиотеке KivyMD

Python *Разработка мобильных приложений *Разработка под MacOS *Разработка под Linux *Разработка под Windows *

Приветствую вас, дорогие любители и знатоки Python! Сегодня как всегда будем делать обзор библиотеки для кроссплатформенной разработки, которая реализует набор виджетов в стиле Google Material Design для фреймворка Kivy — KivyMD. В этой статье рассмотрим пример создания и управления Hero анимациями, которые недавно были добавлены в библиотеку KivyMD.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 4.6K
Комментарии 0

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронности

Python **nix *Разработка игр *Разработка под Linux *Разработка под Windows *

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

Решить проблему многозадачности можно стандартными средствами вытесняющей многозадачности: процессами или потоками. Но тут разработчик сталкивается с достаточно серьезными трудностями. Процессы требуют дополнительных ресурсов на свое обслуживание, а потому невыгодны. А потоки влекут за собой множество трудноотлавливаемых и сложновоспроизводимых багов, из-за чего требуется долгая и кропотливая дополнительная работа по синхронизации потоков. В результате мы становимся перед выбором: или дополнительные расходы на железо, или дополнительные расходы на программистов.

Но, к счастью, существует и третий вариант — кооперативная многозадачность с помощью системного вызова select и его аналогов (poll, epoll и других). Он позволяет мультеплексировать несколько задач в одном потоке выполнения и в сущности является обычной синхронной программой. А потому никаких дополнительных трат процессорного времени и времени разработчиков не требуется.

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 3.3K
Комментарии 4

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 2. Блокирующие сокеты и многозадачность

Python **nix *Разработка игр *Разработка под Linux *Разработка под Windows *

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 4.3K
Комментарии 1

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 1. Введение

Python **nix *Разработка игр *Разработка под Linux *Разработка под Windows *

Дабы исчерпать до дна тему сокетов в Python я решил изучить все возможные способы их использования в данном языке. Чтобы всех их можно было испытать и попробовать на зуб, были созданы 19 версий простого эхо-сервера: от примитивного использования класса socket до asyncio. Блокирующие и неблокирующие сокеты, процессы и потоки, select'ы и selector'ы, коллбеки и сопрограммы — все эти темы расположены в эволюционном порядке, чтобы один пример плавно перетекал в другой.

Отдельно разобрано появление асинхронности в Python. На примерах детально показано, как и зачем появились итераторы, из них — генераторы, сопрограммы. Ближе к концу построен учебный макет библиотеки asyncio с минимально необходимым кодом, чтобы любой (даже такой, как я) смог разобраться, как на самом деле устроена асинхронность, как там все внутри работает.

Пишу подробно, чтобы случайно чего не пропустить. Поэтому понятно должно быть всем.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 15K
Комментарии 5

Брутфорс соседского Wi-Fi (в исключительно исследовательских целях)

Информационная безопасность *.NET *C# *Разработка под Windows *
Tutorial

Надежные и постоянно меняющиеся пароли - это здорово. Особенно когда они меняются и на Wi-Fi роутере и WPS на нем вообще отключен. В этом посте: сколько занимает перебор WPS pin и есть ли у этого практическое применение? А еще напишем программу для брутфорса на C#

Подобрать пароль
Всего голосов 33: ↑25 и ↓8 +17
Просмотры 32K
Комментарии 51

Соглашения о вызовах

Программирование *Assembler *C *Реверс-инжиниринг *Разработка под Windows *

Это стандартизированные методы реализации и вызова функций.

Соглашение о вызовах опредяют как функция вызывается, как функция управляет стеком и стековым кадром, как аргументы передаются в функцию, как функция возвращает значения.

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 2.5K
Комментарии 11

Прагматичный набор модификаций для Windows 10 на старом железе

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

В статьях про раздувание софта часто упоминают лаги Windows 10/11. Главная причина — ожирение кода в новых версиях. Для работы ОС с каждым годом требуется всё больше ресурсов. После засорения системы приходится ждать 10–20 секунд, пока отрисуются пункты контекстного меню по правой кнопке…

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

Но что делать, если приходится поневоле сидеть под Win10/11? Тогда остаётся одно — бороться с ожирением софта хирургическим путём. А именно, отключить ненужные модули и компоненты, развестистый GUI, анимацию и спецэффекты, удалить лишний софт, почистить реестр. Другими словами, спустить жирок из системы. После мануальных процедур винда начинает шевелиться значительно бодрее.
Читать дальше →
Всего голосов 131: ↑76 и ↓55 +21
Просмотры 26K
Комментарии 113

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

Работа