Как стать автором
Поиск
Написать публикацию
Обновить
384
0
Александр Якубович @ragequit

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

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

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

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


Вступление


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 года

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Как Microsoft убила AppGet

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


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

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

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

Время на прочтение20 мин
Количество просмотров7.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

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



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

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

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


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

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

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

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


Наконец стало известно, чем ответит 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.
Читать дальше →

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

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

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

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

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

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


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

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

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

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

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

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



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 тысяч долларов

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

Содержание


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

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

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

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

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

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

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

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

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

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Работает в
Дата рождения
Зарегистрирован
Активность