Pull to refresh
0
0
Владимир Савин @WowaBBS

User

Send message

NTFS Reparse Points

Reading time9 min
Views5.8K
Привет, Хабр. Представляю вам гайд по NTFS Reparse points (далее RP), точкам повторной обработки. Это статья для тех, кто только начинает изучать тонкости разработки ядра Windows и его окружения. В начале объясню теорию с примерами, потом дам интересную задачку.


Читать дальше →
Total votes 20: ↑19 and ↓1+29
Comments4

Windows и case-sensitive filesystem

Reading time4 min
Views24K
Давным-давно, на заре своего рождения Windows использовала файловую систему FAT. Потом ей на смену Microsoft и IBM разработали NTFS. В те давние времена возникло два противоположных подхода к файловой системе. В Linux используется case-sensitive файловая система, а в Microsoft — case-insensitive.

Суть в том, что в case-sensitive файловой системе считается, что имена, написанные в разных регистрах (например, FILE.txt и file.txt) — это разные имена. А для Windows между ними нет разницы.



Несмотря на нечувствительность Windows к регистру букв, разработчики NTFS подошли к делу ответственно, и бережно сохраняют регистр имен каталогов и файлов. Возможно, они не теряли надежды на сближение с противоборствующим лагерем.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments109

Четыре вида метаданных NTFS

Reading time4 min
Views18K
Object IdВ данной теме я рассмотрю четыре вида метаданных, которые могут быть прикреплены к файлу или каталогу средствами файловой системы NTFS. Я опишу, в каких целях можно использовать тот или иной тип метаданных, приведу пример его применения в какой-либо технологии Microsoft или стороннем программном обеспечении.

Речь пойдёт о точках повторной обработки (reparse points), идентификаторах объектов (object id) и о других типах данных, которые может содержать файл помимо своего основного содержимого.
Читать дальше →
Total votes 99: ↑94 and ↓5+89
Comments14

Как я писал свою первую игру для Dendy

Level of difficultyMedium
Reading time18 min
Views13K

Что такое Dendy? Что так любит детвора? Это электронная игра! Ооо, дендиии...

В этой статье я вам расскажу о своем первом опыте разработки игры для NES/Famicom консоли. Постараюсь рассказать о инструментах, которые использовал и о интересных особенностях разработки игр для Dendy с которыми столкнулся во время создания игры.

Погрузиться в мир Dendy
Total votes 70: ↑70 and ↓0+70
Comments22

Глубина кроличьей норы: бинарная граница и ABI C++

Reading time26 min
Views7K

Вопрос ABI (Application Binary Interface), бинарной границы и бинарной совместимости в C++, раскрыт на просторах интернета не так хорошо как хотелось бы. Особенно сложно в его изучении приходится новичкам, потому что эта тема связана со множеством деталей нарочно скрытой от глаз программиста имплементации языка.

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

Подробнее о статье:

Мир С++ многое скрывает от глаз программиста. Это свойство языка — обоюдоострый меч, который с одной стороны позволяет уменьшить порог входа, но в то же время является препятствием при написании программ, уходящих дальше стандартного примера.

В первой части статьи я поделюсь теоретическими знаниями о том, что такое ABI и бинарная граница, и какие проблемы могут возникнуть при её пересечении.

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

В рамках всей статьи будут рассмотрены темы: системный стек, системные регистры, динамическая память, детали механизма виртуальных функций, стандарт С++ и реальная имплементация, детали механизма исключений, copy elision при линковке библиотек, шаблоны, POD-типы и ODR violation.

Break -in- ABI
Total votes 12: ↑10 and ↓2+12
Comments40

Опыт создания UI библиотеки на C++

Level of difficultyMedium
Reading time21 min
Views14K

Началось все почти два года назад в декабре, практически перед новым годом.

Наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...

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

В течении шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.

Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...

В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да...

wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulcan на современных машинах.

В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost. 

Читать далее
Total votes 28: ↑26 and ↓2+30
Comments55

Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 6

Level of difficultyMedium
Reading time8 min
Views9K

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

Читать далее
Total votes 8: ↑7 and ↓1+7
Comments5

Вальяжной походкой по HTTP-заголовкам

Level of difficultyEasy
Reading time8 min
Views12K

Статья по основам HTTP‑заголовков, обеспечивающим безопасность, а также методы их использования. То есть будем разбираться какие заголовки безопасности существуют, какие директивы у них есть, какие методы использования возможны, и от чего мы вообще можем защититься, если будем их применять.

Разбора конфигов Web‑сервера не будет, будут только заголовки, их директивы и пояснения с примерами.

Давайте разбираться
Total votes 11: ↑8 and ↓3+8
Comments3

Kornia — библиотека компьютерного зрения

Level of difficultyMedium
Reading time15 min
Views12K

Kornia это open source библиотека для решения задач компьютерного зрения. Она использует PyTorch в качестве основного бэкенда и состоит из набора дифференцируемых процедур и модулей. Создатели библиотеки вдохновлялись OpenCV, и поэтому Kornia является его аналогом, но при этом в некоторых моментах превосходит. Главным преимуществом Kornia по сравнению с тем же OpenCV, scikit-image или с Albumentations является возможность обрабатывать изображения батчами, а не по одному изображению и возможность обрабатывать данные на GPU.

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments10

Macromedia Flash: Взлет и закат технологии

Level of difficultyMedium
Reading time29 min
Views16K

Если никто не подведёт итог под историей Macromedia Flash, она рискует затеряться в хламе IT-подвала. Напомню, что “волшебный” плагин Flash player стоял практически на всех компьютерах мира. И в какой-то момент именно эта технология была лучшей для анимации, игр и мультимедиа. В этой статье я расскажу историю технологии и добавлю историю от лица разработчика: что мы создавали, как работали,  плюсы минусы самой платформы и ключевые события. Ну и главное, почему Flash взлетела до массового распространения, а потом потерпела поражение и осталась в прошлом. И ответить на вечный вопрос “Кто виноват?” Иная версия вопроса: Зачем Стив Джобс убил Flash? Спойлер, Джобс не виноват.

Читать далее
Total votes 67: ↑67 and ↓0+67
Comments92

Компьютерные решения больше не запатентовать

Level of difficultyEasy
Reading time23 min
Views23K

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

В последнее время Роспатент начал, на мой взгляд, неправомерно выдавать отказы по разработкам, которые основаны на использовании компьютеров и прочей вычислительной техники.

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

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

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

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

Читать далее
Total votes 59: ↑51 and ↓8+61
Comments63

Поиск с помощью регулярных выражений: подход с Виртуальной Машиной

Level of difficultyHard
Reading time28 min
Views3.1K

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

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

Так же в статье приведена любопытнейшая историческая справка и особенности реализации POSIX.

Об ошибка, опечатках и неточностях большая просьба сообщать.

Заблудиться в тёмном лесу
Total votes 8: ↑8 and ↓0+8
Comments2

Детские шалости: как Roblox стала одной из самых дорогих игровых компаний современности

Reading time5 min
Views21K

Убыточная детская платформа для создания компьютерных игр Roblox с третьей попытки вышла на биржу, и её рыночная оценка тут же побила все самые смелые прогнозы. Сейчас она стоит больше, чем Take-Two (издатель Grand Theft Auto) и Ubisoft (разработчик серии Assaisin’s Creed) вместе взятые. Под катом — о том, как стартап, который часто называют «новым Minecraft», смог добиться такого результата.

Читать далее
Total votes 23: ↑22 and ↓1+39
Comments11

Софт для самохостинга: что нового в 2023 году

Level of difficultyEasy
Reading time6 min
Views42K


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

В связи с этим стоит внимательнее посмотреть на стандартный софт для самохостинга, а также на последние новинки, которые имеют шанс заменить что-то из стандартного набора.
Читать дальше →
Total votes 46: ↑44 and ↓2+55
Comments92

Разработка BIOS на языках высокого уровня

Level of difficultyHard
Reading time11 min
Views25K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

Хотя я и имею достаточный опыт BareMetal-разработки, тем не менее, всё это были чужие проекты со своим кодом. А мне хотелось понять, как начать свой проект с чистого листа, когда есть только чистая железка и идея. Толковых статей как подступится к этой задаче достаточно мало, при этом совершенно непонятно, с какого же края к ней подходить.

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →
Total votes 103: ↑102 and ↓1+132
Comments58

NFC приходит в web

Reading time5 min
Views21K

Это должно было быть примерно в 2012 году, когда Google выпустил первые телефоны с поддержкой NFC (Google Nexus S) вместе с обновлением для Android, которое позволило разработчикам использовать API NFC. Я хорошо помню, что заплатил несколько евро за несколько тегов NFC, чтобы попробовать (сегодня эти теги стоят очень дёшево). Хотя я был очень убежден, и команда CX Labs анонсировала множество прототипов, таких как покупки с помощью NFC, Apple потребовалось много лет, чтобы внедрить NFC и, наконец, открыть API для своих разработчиков. О NFC почти забыли... Но сейчас 2021 год, и большинство телефонов имеют встроенное оборудование NFC. Основной вариант использования - платежи, эмуляция карты NFC - один из трех режимов работы NFC, и большинство из нас ежедневно используют Apple или Google Pay.

Это означает, что функция NFC широко доступна для разработчиков, но, честно говоря, она не очень часто используется, кроме как через платежные приложения, поддерживаемые Google/Apple. Но только в мае 2021 года вышел Chrome для Android 91, который теперь поддерживает веб-NFC - любой веб-разработчик может экспериментировать и использовать NFC на простых HTML-страницах. Хотя Safari от Apple и другие браузеры снова опаздывают в игру, это может снова ознаменовать момент для нового прорыва в технологии NFC. Web NFC снижает барьер для разработчиков и, что более важно, функциональность NFC теперь может быть частью Интернета: никаких установок.

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments46

Вкатываемся в ангельский без репетиторов

Level of difficultyEasy
Reading time4 min
Views18K

Привет, {{ username }}!

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

Постараюсь емко обобщить свой опыт самостоятельного изучении языка от A1 до B2 за 1-2 года. Информация релеванта для технарей 25+ лет, однако подойдет для широкого круга интересующихся.

Мнение автора субъективно. Представленные материалы, инструменты и best practices дадут вам базовое знание языка, однако не смогут подготовить к собеседованию, IELTS/TOEFL, чтению классической литературы и т.п.

Вкатиться
Total votes 15: ↑13 and ↓2+12
Comments16

Стохастический язык программирования на основе алгоритмов Маркова

Reading time13 min
Views27K

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →
Total votes 139: ↑139 and ↓0+139
Comments24

Семейство алгоритмов Ascon — новый стандарт легковесной криптографии

Reading time3 min
Views3.7K

Режим работы шифра Ascon, см. список условных обозначений на схеме

В феврале 2023 года Национальный институт стандартов и технологий (NIST) выбрал стандарт легковесной криптографии для RFID, датчиков, Интернета вещей и других устройств с ограниченными аппаратными ресурсами. Победителем конкурса стало семейство шифров Ascon (файл zip, спецификации, changelog).
Читать дальше →
Total votes 13: ↑12 and ↓1+18
Comments4

Создаем свой собственный язык программирования с использованием LLVM. Часть 4: Поддержка составных типов

Reading time54 min
Views3.9K

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

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments4
1
23 ...

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity