Как стать автором
Обновить
14
3.6
Андрей @diakin

Пользователь

Отправить сообщение

Большинство оконных приложений — это недоработанные real-time приложения

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров9.4K

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

Я программирую уже давно. Под давно я имею в виду не один десяток лет работы. Надеюсь, это достаточно долго. За это время мой опыт в основном заключался в программировании для современных платформ вроде Linux, Windows, macOS для десктопных и серверных архитектур процессоров. Недавно я участвовал в создании MIDI-движка для систем значительно меньшей мощности.

Вскоре после начала я столкнулся с проблемой, которая требовала обеспечить невозможность переполнения очереди событий ввода. По сути, эта задача сводится к тому, чтобы каждый обработчик событий не выполнялся дольше некой максимальной продолжительности времени. Затем меня осенило! Я уже слышал это раньше — «максимальная продолжительность времени», так как занимаюсь разработкой систем, работающих в реальном времени.
Читать дальше →

Как работает Wine

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


Wine — это свободное программное обеспечение для запуска Windows-приложений на нескольких POSIX-совместимых операционных системах, включая Linux, macOS и BSD.

Если вы любите Linux, то наверняка когда-то запускали Wine. Возможно, для какой-то «важной» программы Windows, у которой нет аналога под Линуксом, или поиграться. Забавный факт: даже Steam Deck от Valve запускает игры через оболочку на основе Wine (она называется Proton).

За последний год я намучился с отладчиком, который позволяет одновременно дебажить и Wine, и Windows-приложение в нём. Разобраться во кишочках Wine оказалось очень интересно! Я-то раньше много им пользовался, но никогда не понимал механику целиком. Можно взять файл Windows — и просто запустить его в Linux без каких-либо изменений. Если вы хотите знать, как это сделано, добро пожаловать под кат.
Читать дальше →

Разрабатываем свой браузер. Часть вторая: CSS

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров3.8K


Всем привет!


Продолжаем цикл статей по разработке браузерного движка.


Да, лучше поздно, чем никогда. Да, перерыв был большой.


В конце статьи я опишу, как поживает проект lexbor, что с ним происходит.


В этой статье я постараюсь раскрыть особенности парсинга Cascading Style Sheets (CSS). Расскажу, как вывернуть «ежа» наизнанку и как тестировать полученный результат.


В CSS спецификациях всё разжевано, ну, или почти всё, тут я расскажу, как всё устроено, куда смотреть и с чего начать.


Эта статья больше обзорная, здесь не будет мелких подробностей реализации, скорее, общие сведения и основные алгоритмы. За мельчайшими подробностями прошу в код на GitHub.


И конечно, как это обычно бывает, мы замахнёмся на звание самого быстрого парсера CSS.

И так, начнём!

IPv6 — это катастрофа (но поправимая)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров51K

В последнее время мы всё чаще слышим не самые приятные новости про IP-адреса. Компания AWS объявила, что будет брать по $0,005/ч. за каждый адрес IPv4, тем самым присоединившись к другим облачным провайдерам, сделавшим платным использование публичного адреса IPv4. GCP просит с клиентов по $0,004/ч., а Azure и Hetzner — по €0,001/ч. Очевидно, что эпоха, когда облачные провайдеры расширялись, скупая дополнительное пространство IPv4, подходит к концу. Чем дальше, тем ценнее становятся эти адреса, и тем менее целесообразно предоставлять их бесплатно.
Читать дальше →

Я люблю питон, и вот почему он меня бесит

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров59K

Вас приветствует ваш зануда!

Если вы следите за моей ленивой активностью, то заметили бы, что у меня много от чего пригорает. Вот, например:
- У меня пригорает от низкосортных статей на потоке: Питон против Безумного Макса, или как я посты на Хабре замораживал
- У меня пригорает от Django: Окей, Джанго, у меня к тебе несколько вопросов
- И от Яндекса тоже: Собеседование в Яндекс: театр абсурда :/
- И от рекрутеров: Я единственный из 1400, или самый крутой рекрутинг, что я проходил

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

Это что же получается, kesn опять открыл postman и сломал вёрстку на сайте? Поразительно, никогда такого не было, и вот опять! В принципе, тут можно писать текст любой длины (похоже, у них на бэкенде не Char(255), а Text). Они проверяют длину только на фронтенде, а бэкенд принимает строку любой длины. И это, блин, забавно) Вообще мой девиз - 'кто ищет, тот всегда найдёт', поэтому я ищу постоянно. Кстати, на Хабре скоро выйдет статья про программирование глазами Погромиста, там в том числе про уязвимости на сайтах будет - поэтому если не хотите пропустить, то подписывайтесь на меня в телеге: @blog_pogromista

One Core API чтоб править Windows

Время на прочтение1 мин
Количество просмотров31K
                      "Если Microsoft не обеспечивает совместимость — 
                      сообщество обеспечивает совместимость".
                                                                     Aceler



Поздравляем хабражителей с Рождеством! И у нас есть праздничный сюрприз для вас!

Представляем вашему вниманию проект One Core API — слой совместимости с открытым исходным кодом для Windows XP/2003, который позволяет запускать на этих системах программы для более поздних ОС. По сути это враппер функций NT6. Путем дополнительных ухищрений обеспечивается поддержка DirectX 10. One Core API создан на основе исходников Wine и ReactOS, но его разработкой занимается другая команда.

Всех желающих приглашаем присоединится к разработке: github.com/Skulltrail192/One-Core-Api
под катом - демонстрация возможностей

«Пиратим» Google Chrome для Microsoft Windows 7

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров63K

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

На абордаж!

Читать далее

Курсовая работа: «Правовые аспекты разработки открытой операционной системы ReactOS»

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров12K

Предисловие


Я являюсь магистрантом второго года обучения СКФУ института Математики и Естественных наук специальности «Прикладная Математика и Математическое моделирование». Так случилось, что темы курсовой и последующей магистерской работ оказались посвящены проекту, которым я занимаюсь уже более 7 лет — операционной системе ReactOS. В связи с этим я считаю, что итоговый материал не должен просто пылиться на диске или полке и его следует опубликовать. Сразу хочу предупредить, что:
  • я никогда целенаправленно не получал юридического образования;
  • текст может содержать избыточное цитирование (вплоть до заимствования), некоторые фактические, смысловые, пунктуационные и орфографические ошибки вопреки моему желанию их устранить;
  • по выше названым причинам не могу назвать свою работу близкой идеалу.


Для более удобного чтения предлагаю скачать полный вариант работы в PDF или ...

пожаловать под кат

В софте все всрато и становится еще всратее

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

Приветствую хабравчане!

Глава 1 - Нытье про то, что раньше было лучше

Десяток лет читаю Хабр, в основном разработка, программирование, старое железо и посты с адовым рейтингом. Видел несколько постов об ожирении сайтов, софта. О разочаровании в программировании с 2000+ постов. И пост, что в софте все ок, но никто не доволен или как оно там. А не важно. Хочу поделиться своими мыслями и наблюдениями на этот счет.

Ниже размещена картинка с ПК которые у меня были, не все, парочку ноутов я просто не помню. Эволюция их производительности, специально выделил производительность на одно ядро.

Читать далее

Старый компьютер, Windows XP, 512 Мб оперативки, Firefox и интернет

Уровень сложностиСредний
Время на прочтение127 мин
Количество просмотров330K
Несмотря на пройденное время, многие по прежнему ещё пользуются Windows XP. Кто-то вынужден работать на этой ОС или обслуживать такие компьютеры, у кого-то может быть хобби восстановления старых ПК, некоторых полностью устраивает Windows XP или же из-за своих финансовых или прочих убеждений они не хотят менять старого верного «друга» на нового.
Эта статья, возможно поможет многим обладателям старых компьютеров открыть «второе дыхание» своим музейным экспонатам.

Так как оптимизация такого старого оборудования носит комплексный характер, статья будет состоять из нескольких глав:

— Firefox
— Дополнения к браузеру
— Драйверы
— WindowsXP
— BIOS
— Советы по аппаратной части
Читать дальше →

Идеальная ОС: переосмысление операционных систем для десктопа

Время на прочтение17 мин
Количество просмотров39K
TL;DR: К концу этого эссе я надеюсь убедить вас в следующих фактах. Во-первых, что современные десктопные операционные системы никуда не годятся. Они раздутые, тормознутые и напичканы легаси-хламом, а кое-как работают только благодаря закону Мура. Во-вторых, что инновации в десктопных ОС прекратились около 15 лет назад, а основные игроки вряд ли собираются много вкладывать в них снова. И наконец, я надеюсь убедить вас, что мы можем и должны начать с нуля, усвоив уроки прошлого.

«Современные» десктопные ОС раздуты


Возьмём Raspberry Pi. За 35 долларов я могу купить отличный компьютер с четырьмя процессорными ядрами, каждое на частоте более гигагерца. У него также есть 3D-ускоритель, гагабайт оперативки, встроенные WiFi с Bluetooth и Ethernet. За 35 баксов! И всё-таки для многих задач, которые я хочу на нём запустить, Raspberry Pi ничем не лучше компьютера на 66 мегагерц, который был у меня в колледже.


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

Методы борьбы с воровством в кружке робототехники (часть 2)

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров16K

В 2020 году я написал статью о своих наработках в области защиты активов кружка робототехники от краж.

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

Ознакомиться с нововведениями

Ускорение загрузки Windows for fun and profit

Время на прочтение4 мин
Количество просмотров808K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста

Here be dragons: Управление памятью в Windows как оно есть [1/3]

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

Каталог:
Один
Два
Три

Менеджер памяти (и связанные с ним вопросы контроллера кеша, менеджера ввода/вывода и пр) — одна из вещей, в которой (наряду с медициной и политикой) «разбираются все». Но даже люди «изучившие винду досконально» нет-нет, да и начинают писать чепуху вроде (не говоря уже о другой чепухе, написанной там же):
Грамотная работа с памятью!!! За все время использования у меня своп файл не увеличился ни на Килобайт. По этому Фаерфокс с 10-20 окнами сворачивается / разворачивается в/из трея как пуля. Такого эффекта я на винде добивался с отключенным свопом и с переносом tmp файлов на RAM диск.

Или к примеру μTorrent — у меня нет никаких оснований сомневаться в компетентности его авторов, но вот про работу памяти в Windows они со всей очевидностью знают мало. Не забываем и товарищей, производящих софт для слежения за производительностью и не имеющих ни малейшего понятия об управлении памятью в Windows (и поднявших по этому поводу истерику на пол интернета, на Ars-е даже был разбор полетов). Но самое потрясающее, что я видел всвязи с управлением памятью — это совет переместить pagefile на RAM-диск:
Из моих трех гигабайт под RAM disk был выделен один (на тот момент, когда на лаптопе еще была установлена XP), на котором я создал своп на 768МБ ...

Цель данной статьи — не полное описание работы менеджера памяти (не хватит ни места ни опыта), а попытка пролить хоть немного света на темное царство мифов и суеверий, окружающих вопросы управления памятью в Windows.
Читать дальше →

Управление временем жизни объектов: почему это важно и почему для этого пришлось создать новый язык «Аргентум»

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.8K

Аргентум - язык программирования, построенный на новой ссылочной модели, которая не использует сборщик мусора и гарантирует отсутствие утечек памяти.

Читать далее

Профилирование boot sequence операционной системы «Нейтрино»

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.3K

При использовании нашей операционной системы пользователи регулярно обращают внимание на то, что процесс её загрузки от передачи управления ядру, до начала выполнения прикладного кода, не всегда прозрачный. В результате анализа обращений мы пришли к выводу, что необходимо внедрить штатный механизм информирования и профилирования процесса загрузки системы (boot sequence). Основной особенностью внедренного решения является его децентрализованность, поскольку ОС является микроядерной и все привычные системные сервисы реализованы вне ядра. Технология прикладного профилирования (тот же gprof) в данном случае не самый подходящий инструмент.

Читать далее

Технология электронно-много-лучевой литографии

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

Скорость засветки у электронно-лучевого литографа на порядки меньше скорости засветки у лазерного генератора фотошаблонов.

На один фотошаблон может потребоваться до нескольких суток, а если учесть что полный комплект фотошаблонов для микросхемы может состоять из 80 шт. этих фотошаблонов, то срок производства комплекта фотошаблонов (масок) может занять несколько месяцев.

Учитывая стоимость электронно-лучевого литографа (порядка 15 млн. USD), становиться понятно, почему комплект масок для техпроцесса 130 нм может стоить 500 тыс. USD, а для продвинутого техпроцесса 7-14 нм может легко уйти за 10 млн. USD.

Может стоит ускориться?

Как это делают можно узнать под катом

Штраф в 150% от стоимости проданной квартиры: ужасы валютных нарушений, и как их избежать

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

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

Читать далее

Инфляция программного обеспечения с точки зрения ресурсов процессора — почему новые версии приложения порой гораздо медленнее старых?

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

Прелюдия


Это был обычный вечер четверга. Я вернулся с работы, сел за ноутбук, включил его, запустил Skype и начал привычно ждать, когда же он наконец загрузится полностью и целиком. И тут неожиданно я задумался — а почему он так долго загружается, да еще и система явно тяжело переносит этот процесс?

Я решил заглянуть в Task Manager, чтобы оценить, сколько ресурсов потребляет Skype в фоновом режиме. Но для начала небольшие предварительные расчеты. А сколько вообще это должно потреблять ресурсов? Я сейчас говорю про фоновый режим. Т.е. когда никакой видеосвязи нет, я ни с кем не говорю даже по микрофону. Все, что есть, это список контактов, который отображается в виде иконок и имен, и меню, в котором можно что-то выбрать.

Т.е. это одна форма, по сути, из которой можно запустить дополнительные меню. На этой форме один список. И текстовое поле для ввода сообщений кому-то, несколько кнопок. Лет 15 назад, когда я писал на Delphi, такое приложение (с одной формой) весило бы пару сотен килобайт. Конечно, с тех пор среды разработки стали потреблять гораздо больше ресурсов, компоненты визуальные стали богаче. Однако даже с учетом этого прогресса Skype в фоновом режиме должен весить где-то мегабайт 10 максимум. Ведь я же ни с кем не говорю и не звоню, на что там еще можно столько потратить?
Читать дальше →

Почему некоторым так сложно учиться программированию?

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

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

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

Читать далее

Информация

В рейтинге
1 075-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность

Специализация

Software Developer