Search
Write a publication
Pull to refresh
384
0
Александр Якубович @ragequit

Пишу статьи и книги в жанре фэнтези

Send message

Как рендерится кадр DOOM Ethernal

Reading time16 min
Views31K


Вступление


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

Мой анализ вдохновлен трудом Adrian Courrèges про Doom 2016 (перевод). Я считаю, что подобные работы позволяют взглянуть на подходы к решению некоторых проблем рендеринга AAA-проектов и тем самым становятся превосходными обучающими материалами. В этом анализе я планирую обсудить общие особенности и не погружаться слишком глубоко в тонкости каждого способа и прохода рендеринга. Кроме того, некоторые проходы в Doom Eternal почти не отличаются от своих аналогов в Doom 2016 и уже были разобраны в труде Adrian Courrèges, поэтому я могу их пропустить.

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

Итак, приступим.
Читать дальше →

Intel застряла. Техпроцесс 7 нм откладывается до конца 2021 — начала 2022 года

Reading time3 min
Views26K

Исполнительный директор Intel Боб Свон

Корпорация Intel опубликовала финансовый отчёт за II кв. 2020 года, в котором объявила об очередной задержке с переходом на техпроцесс 7 нм. Планы отложили ещё на шесть месяцев, так что теперь внедрение 7 нм планируется не раньше конца 2021-го — начала 2022 года. В сумме отставание от внутренней дорожной карты Intel выросло до 12 месяцев.

Любопытно, что Intel планировала быстро перейти на 7 нм, потому что испытывала проблемы с внедрением техпроцесса 10 нм. Некоторые аналитики высказывают мнение, что в такой ситуации можно думать о переходе сразу на 5 нм.
Читать дальше →

AMD представила серверные процессоры Ryzen Threadripper Pro, но они не будут продаваться в розницу

Reading time5 min
Views12K


Кроме десктопного рынка, AMD всерьёз рассчитывает захватить и серверный рынок. И вот вчера компания впервые анонсировала линейку процессоров для рабочих станций под новым брендом Ryzen Threadripper Pro. Однако следует отметить, что эти процессоры будут доступны только в составе готовых систем, и соответствующие потребительские материнские платы не будут выпускаться.

Набор продуктов от AMD в течение нескольких поколений включал процессоры Ryzen Pro и Ryzen Mobile Pro, в том числе варианты с поддержкой ECC. Можно было предположить, что в то время как у Ryzen был вариант Ryzen Pro, наиболее естественным вариантом для Threadripper будет линейка EPYC. Рынок серверов и рынок высокопроизводительных настольных компьютеров/рабочих станций всегда частично перекрывались, и до этого момента, если покупателю нужен был «серверный» дизайн, с ECC и проверкой программного обеспечения, он обращался к EPYC.

Сейчас AMD меняет положение вещей, выпуская Ryzen Threadripper Pro.
Читать дальше →

Разбираемся в моделях кода архитектуры x64

Reading time19 min
Views11K
«Какой моделью кода мне воспользоваться?» — часто возникающий, но нечасто разбираемый вопрос при написании кода для архитектуры х64. Тем не менее, это довольно интересная проблема, и для понимания генерируемого компиляторами машинного кода х64 полезно иметь представление о моделях кода. Кроме того, для тех, кто беспокоится о производительности вплоть до мельчайших команд, выбор модели кода влияет и на оптимизацию.

Информация по этой теме в сети, или где бы то ни было еще, встречается редко. Самым важным из доступных ресурсов является официальный х64 ABI, скачать его можно по ссылке (далее по тексту он будет упоминаться как «ABI»). Часть информации также можно найти на man-страницах gcc. Задача данной статьи — предоставить доступные рекомендации по теме, обсудить связанные с ней вопросы, а так же хорошими примерами через используемый в работе код продемонстрировать некоторые концепты.

Важное замечание: эта статья не является обучающим материалом для начинающих. Перед ознакомлением рекомендуется уверенное владение C и ассемблером, а так же базовое знакомство с архитектурой х64.
Читать дальше →

Опасный алгоритм SHA-1 убирают из библиотек SSH

Reading time5 min
Views26K

Сложность атак на SHA-1. Стоимость указана из расчёта стоимости аренды одного GTX 1060 в 35 долларов/месяц

Намного позже всех остальных, но разработчики библиотек для SSH приняли решение наконец-то отключить по умолчанию устаревшую криптофункцию SHA-1. Сегодня подбор серверного ключа аутентификации SHA-1, то есть коллизия с выбранным префиксом, на арендованном кластере GPU обойдётся в $45 тыс., как указано в таблице вверху. Это делает атаку доступной не только для государственных спецслужб, но и для коммерческих клиентов.

Об отключении SHA-1 по умолчанию одновременно объявили разработчики опенсорсных библиотек OpenSSH (release notes) и libssh (изменение кода).
Читать дальше →

Как Microsoft убила AppGet

Reading time5 min
Views61K


На прошлой неделе Microsoft выпустила пакетный менеджер WinGet в рамках анонсов на конференции Build 2020. Многие посчитали это ещё одним доказательством сближения Microsoft с движением Open Source. Но только не канадский разработчик Кейван Бейги (Keivan Beigi), автор свободного менеджера пакетов AppGet. Сейчас он силится понять, что произошло за последние 12 месяцев, в течение которых он общался с представителями Microsoft.

В любом случае, теперь Кейван прекращает разработку AppGet. Клиентские и серверные службы переходят в режим технического обслуживания немедленно до 1 августа 2020 года, после чего будут закрыты навсегда.
Читать дальше →

Три бага в драйвере Go для MySQL

Reading time20 min
Views7.7K
Так как нас не устраивала скорость и надежность исходной имплементации на Ruby, в последние несколько лет мы постепенно выводили критический функционал из нашего Rails-монолита GitHub.com и переписывали часть кода на Go. Например, на Github Satellite в прошлом году мы анонсировали — и имплементировали — возможность «более контролируемой авторизации» с использованием сервиса authzd.

Работа с authzd оказалась очень интересной и значимой для нас задачей, поскольку это был наш первый сервис на Go для работы с чтением данных из баз MySQL на продакшне в ходе веб-реквеста. У нас имелся опыт развертывания других работающих с базами MySQL-сервисов на Go, но при этом они были либо службами внутреннего контроля (наша кластерная поисковая система manticore), либо асинхронными пакетными заданиями (оркестратор резервного копирования Git gitbackups). Требования к производительности и надежности authzd отличаются от них повышенной строгостью, поскольку обычный реквест к Rails-монолиту вызывает этот сервис неоднократно.

Кроме того, проблемы с большими задержками при открытии TCP соединений на наших Kubernetes кластерах особенно влияли на пул соединений Go MySQL драйвера. Это добавляло работы, ведь именно на Kubernetes мы и развернули authzd. Одним из самых опасных самообманов программиста в этом отношении является вера в надежность сети, поскольку да, в большинстве случаев сеть действительно надежна… но как только она начинает тормозить или барахлить, нас настигают базовые проблемы таких же базовых библиотек, и все начинает рушиться.

Так чего нам в итоге стоила подготовка authzd к обработке всего нашего рабочего трафика через SQL, да еще и в соответствии с нашими целями доступности?
Читать дальше →

История о пропавших DNS-пакетах от техподдержки Google Cloud

Reading time8 min
Views6.5K
От редактора блога Google: Интересовались ли вы когда-нибудь тем, как инженеры Google Cloud Technical Solutions (TSE) занимаются вашими обращениями в техподдержку? В сфере ответственности инженеров технической поддержки TSE лежит обнаружение и устранение указанных пользователями источников проблем. Некоторые из этих проблем довольно просты, но иногда попадается обращение, требующее внимания сразу нескольких инженеров. В этой статье один из сотрудников TSE расскажет нам про одну очень заковыристую проблему из своей недавней практики — случай с пропадающими пакетами DNS. В ходе этого рассказа мы увидим, каким образом инженерам удалось разрешить ситуацию, и что нового они узнали в ходе устранения ошибки. Мы надеемся, что эта история не только расскажет вам о глубоко укоренившемся баге, но и даст понимание процессов, проходящих при подаче обращения в поддержку Google Cloud.



Устранение неполадок это одновременно и наука, и искусство. Все начинается с построения гипотезы о причине нестандартного поведения системы, после чего она проверяется на прочность. Однако, прежде чем сформулировать гипотезу, мы должны четко определить и точно сформулировать проблему. Если вопрос звучит слишком расплывчато то вам придется как следует все проанализировать; в этом и заключается «искусство» устранения неполадок.
Читать дальше →

Почему нам нужен DevOps в сфере ML-данных

Reading time14 min
Views6K


Развертывание машинного обучения (machine learning, ML) в продакшн – задача нелегкая, а по факту, на порядок тяжелее развертывания обычного программного обеспечения. Как итог, большинство ML проектов так никогда и не увидят света — и продакшена — так как большинство организаций сдаются и бросают попытки использовать ML для продвижения своих продуктов и обслуживания клиентов.

Насколько мы можем видеть, фундаментальное препятствие на пути большинства команд к созданию и развертыванию ML в продакшн в ожидаемых масштабах заключается в том, что нам все еще не удалось привнести практики DevOps в машинное обучение. Процесс создания и развертывания моделей ML частично раскрыт уже вышедшими MLOps решениями, однако им недостает поддержки со стороны одной из самых трудных сторон ML: со стороны данных.
Читать дальше →

Опубликованы характеристики и цены процессоров Intel Core 10-го поколения

Reading time7 min
Views77K


Наконец стало известно, чем ответит Intel на сверхпопулярные процессоры AMD Ryzen, которые к апрелю 2020 года захватили до 90% продаж новых CPU.

Ответ Intel — серия Intel Core 10-го поколения под кодовым названием Comet Lake-S. Официальный анонс новых процессоров состоится сегодня, а полная информация и слайды презентации утекли за несколько дней.

Формально Intel представила 32 (!) новых процессора 10-го поколения, но если внимательно изучить таблицу под катом, то почти все они — реинкарнации топовых и предтоповых старых CPU, а реальных новинок только две: Intel Core i9-10900 и Intel Core i9-10900K.
Читать дальше →

Телепортируем процесс на другой компьютер! 

Reading time12 min
Views15K
Однажды коллега поделился размышлениями об API для распределённых вычислительных кластеров, а я в шутку ответил: «Очевидно, что идеальным API был бы простой вызов telefork(), чтобы твой процесс очнулся на каждой машине кластера, возвращая значение ID инстанса». Но в итоге эта идея овладела мной. Я не мог понять, почему она такая глупая и простая, намного проще, чем любой API для удалённой работы, и почему компьютерные системы, кажется, не способны на такое. Я также вроде бы понимал, как это можно реализовать, и у меня уже было хорошее название, что является самой трудной частью любого проекта. Поэтому я приступил к работе.

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

На видео показано, что рендеринг на 64-ядерной VM в облаке завершается за 8 секунд (плюс 6 секунд на телефорк туда и обратно). Тот же рендеринг локально в контейнере на моём ноутбуке занимает 40 секунд:

Фирмы используют баг-баунти, чтобы купить молчание хакеров

Reading time7 min
Views16K


Платформы баг-баунти — HackerOne, Bugcrowd и Synack — служат посредниками между белыми хакерами и компаниями, которые хотят улучшить безопасность своих продуктов. При правильном использовании логика простая:

  1. Хакер сообщает о найденной уязвимости.
  2. Компания-разработчик исправляет баг и перечисляет хакеру вознаграждение в качестве благодарности за то, что он поступил правильно.

Но в реальности всё работает иначе. Как показало расследование CSO, компании и платформы баг-баунти настолько перевернули раскрытие уязвимостей с ног на голову, что многие эксперты, включая бывшего директора по политике HackerOne Кэти Муссури, называют это «извращением».

Серверные процессоры AMD EPYC Rome 7x32 — рекордная производительность на одно ядро

Reading time3 min
Views13K

Меньше ядер, выше частота. В некоторых задачах так выгоднее



EPYC Rome 2-го поколения: 8,34 млрд транзисторов на центральном кристалле IOD площадью 416 мм2 (12 нм) плюс восемь CCD-кристаллов площадью по 74 мм2 (7 нм), итого 39,54 млрд транзисторов на всём чипе (увеличить)

Война между Intel и AMD давно идёт на десктопах и ноутбуках, а теперь разгорается и на серверном рынке. Судя по динамике, AMD действует как будто агрессивнее, потому что она представляет новые модели, а Intel отвечает снижением цен. Вчера AMD нанесла новый удар, проведя презентацию трёх процессоров EPYC Rome второго поколения: это модели 7F32, 7F52 и 7F72 на 8, 16 и 24 ядер. Здесь компания применила новую тактику, уменьшив количество ядер, но увеличив производительность каждого ядра.
Читать дальше →

Прикладная криптография. Как мы восстановили биткоины на 300 тысяч долларов

Reading time9 min
Views26K
Поделюсь с вами одной историей. Около двадцати лет назад я получил степень по физике, но занимался реверс-инжинирингом и криптоанализом. Наша компания AccessData работала в конце 90-х и начале 2000-х. Тогда правительство США постепенно снимало ограничения на экспорт криптографии, однако парольная защита в большинстве программ по-прежнему оставалась довольно бесполезной. Мы брали офисные программы, я проводил реверс-инжиниринг и выяснял алгоритм шифрования, а потом ломал криптозащиту.

Это был нескончаемый поток интересных, но не особенно сложных математических головоломок. За всё время я написал около сорока взломщиков паролей. Мы продавали их домашним пользователям, системным администраторам, местным и федеральным правоохранительным органам. Мне пришлось несколько раз съездить в федеральный центр подготовки сотрудников правоохранительных органов в Глинко, чтобы объяснить ребятам из Секретной службы, ФБР и АТФ основы криптографии и как использовать наши продукты.

Особенно ярко мне запомнились два проекта. Первым был Microsoft Word 97. До его появления файлы шифровались с помощью XOR байтов открытого текста и 16-байтовой строки, которая выводилась из пароля. Самыми распространёнными байтами в файле Word обычно были 0x00, 0xFF или 0x20 (пробел), поэтому мы просто выбирали самый распространённый символ в каждом столбце и проверяли 316 вариантов. Восстановление ключа обычно происходило мгновенно, но чтобы людям не казалось, что они зря потратили деньги, мы вставили небольшую анимацию, похожую на голливудскую хакерскую сцену с множеством случайных символов, из которых постепенно проявляется правильный пароль.
Читать дальше →

Интернет-трафик в Европе вырос в полтора раза. Магистральные провайдеры фиксируют рекорды нагрузки

Reading time4 min
Views8.4K
Разговоры о том, что массовая самоизоляция европейцев увеличила нагрузку на интернет-инфраструктуру на всех уровнях ходят начиная с марта месяца, однако разные источники дают разные данные. Одни говорят, что нагрузка выросла многократно, другие заявляют о цифрах в районе 20 процентов. Правда, во всяком случае для TIER-1 хаба в Амстердаме, оказалась где-то посередине: согласно статистике AMS-IX, средняя нагрузка по трафику выросла примерно на 50%, с 4,0 до 6,0 TB/s.

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

(Не)очевидный OSINT в Twitter

Reading time7 min
Views8.3K


Twitter — достаточно старый, но при этом все еще популярный у широкой аудитории сервис микроблогов, которым активно пользуются как рядовые пользователи, так и публичные личности. Лучший пример — официальные Twitter-аккаунты политиков, писателей, музыкантов, актеров. Конечно, зачастую такие учетные записи ведутся «специально обученными людьми», но если речь идет об OSINT в производственной сфере, то наблюдение за аккаунтами рядовых инженеров или менеджеров может дать великолепные результаты.

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

Пришло время переосмыслить безопасность OpenBSD

Reading time6 min
Views9.1K
OpenBSD позиционируетcя как защищённая ОС. Однако за последние несколько месяцев в системе найден ряд уязвимостей. Конечно, в этом нет ничего экстраординарного. Хотя некоторые уязвимости довольно необычные. Можно даже сказать, критические. У разработчиков OpenBSD несколько принципов, как обеспечить безопасность. Вот два из них:

  • избегать ошибок;
  • минимизировать риск ошибок.

Не все согласны, что этих принципов достаточно, чтобы строить защищённые системы. Мне кажется, есть смысл изучить, работает ли подход OpenBSD, или он изначально обречён.

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

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

Reading time8 min
Views29K


Практически каждый день мы слышим об утечках персональных данных. Браузеры и мобильные приложения собирают информацию о перемещениях и действиях пользователя, чтобы затем перепродать эти данные брокерам для профилирования, а потом — рекламодателям для таргетированной рекламы. То же самое делают интернет-провайдеры, банки, розничные магазины и все остальные, у кого есть доступ к большой базе пользователей. Именно так зарабатывают крупные интернет-компании, такие как Google и Facebook. Приложение для знакомств геев Grindr недавно продало данные о геолокации своих пользователей 35 разным покупателям. C Android-смартфонов координаты пользователя передаются более 300 раз в течение 24-часового периода, даже если пользователь отключил историю местоположений в настройках устройства.

Конечно, все собирают «анонимные» данные. Собирать и продавать эту информацию сегодня совершенно законно в России, США и в большинстве других стран мира. Но установить личность по истории перемещений легче, чем по ДНК. «Компании говорят, что данные передаются лишь проверенным партнёрам. Остаётся только верить на слово в такую корпоративную благотворительность», — пишет NY Times. Если сопоставить информацию из разных баз, то пользователей очень легко деанонимизировать. Достаточно посмотреть, где телефон остаётся на ночь и куда «приходит» на работу.

Как решить эту проблему?
Читать дальше →

13 инструментов для обработки текста в командной оболочке

Reading time17 min
Views115K
Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git, основы SQL, инструменты вроде Make, jq и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.

Содержание


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

Почему не стоит пользоваться WireGuard

Reading time12 min
Views90K
В последнее время WireGuard привлекает к себе большое внимание, фактически — это новая «звезда» среди VPN. Но так ли он хорош, как кажется? Я хотел бы обсудить некоторые наблюдения и рассмотреть реализацию WireGuard, чтобы рассказать, почему он не является решением, которое заменит IPsec или OpenVPN.

В этой статье я хотел бы развенчать некоторые мифы [вокруг WireGuard]. Да, читать придется долго, так что если вы еще не заварили себе чашечку чая или кофе, то самое время это сделать. Еще я бы хотел сказать спасибо Питеру за корректуру моих хаотичных мыслей.

Я не ставлю себе цель дискредитировать разработчиков WireGuard, обесценить их усилия или идеи. Их продукт — рабочий, но лично я считаю, что он представлен совершенно не тем, чем является на самом деле — представлен как замена IPsec и OpenVPN, которой на самом деле сейчас просто не существует.

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

В последнее время на тему ядра Linux было не слишком много хороших новостей. Так, нам рассказали о чудовищных уязвимостях процессора, которые были нивелированы программным способом, а Линус Торвальдс рассказывал об этом слишком грубо и скучно, утилитарным языком разработчика. Планировщик или сетевой стек нулевого уровня — тоже не слишком понятные темы для глянцевых журналов. И тут появляется WireGuard.

На бумаге все звучит здорово: захватывающая воображение новая технология.

Но давайте посмотрим на нее чуть внимательнее.
Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Works in
Date of birth
Registered
Activity