Как стать автором
Обновить
311
0
Владимир Маслов @HotWaterMusic

Руководитель, автор ТГ-канала Сеньор Юникорн

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

Возвращение «Эпохи империй»: всё, что известно про Age of Empires IV

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

На прошедшей неделе в ночь с четверга на пятницу на конференции X019 в Лондоне произошло долгожданное событие — компания Microsoft показала геймплей продолжения знаменитой стратегической серии Age of Empires IV. На первый взгляд проект, окруженный «туманом войны» на протяжении вот уже нескольких лет, напоминает выполненный в 3D ремейк Age of Empires II — самой популярной части серии, в которую до сих пор играют миллионы любителей RTS и истории. Предупреждаем: «кидать деньги в монитор» пока ещё рано — игровые издания называют ориентировочной датой релиза 2020 2021 год.

Под катом вас ждет рассказ о том, почему выхода новой Age of Empires пришлось ждать целых 15 лет, максимум известных подробностей про четвертую часть легендарной стратегической серии, а также обзор закрытого показа игры, основанный на показаниях свидетелей и игровой прессы.
Всего голосов 83: ↑80 и ↓3 +77
Комментарии 21

Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен

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

Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.

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

Все эти системы отличали большие масштабы: их создавали сотни разработчиков — или они использовали их в своих разработках — и сегодня они бьются в сердцах систем, которыми ежедневно пользуются миллионы людей. Причем, эти проекты создавались не с нуля. Система платежей должна была заменить две другие существующие платежные системы, используемые десятками других систем и дюжинами команд, и все это — без какого-либо ущерба для бизнеса. Переписывание приложения Uber было проектом, над которым одновременно работало несколько сотен инженеров — он включал в себя портирование всей существующей функциональности на новую архитектуру.
Читать дальше →
Всего голосов 73: ↑66 и ↓7 +59
Комментарии 66

Google открывает исходный код парсера robots.txt

Время на прочтение 2 мин
Количество просмотров 33K
image

Сегодня компания Google анонсировала черновик RFC стандарта Robots Exclusion Protocol (REP), попутно сделав доступным свой парсер файла robots.txt под лицензией Apache License 2.0. До сегодняшнего дня какого-либо официального стандарта для Robots Exclusion Protocol (REP) и robots.txt не существовало (ближайшим к нему было вот это), что позволяло разработчикам и пользователям интерпретировать его по-своему. Инициатива компании направлена на то, чтобы уменьшить различия между реализациями.

Черновик нового стандарта можно просмотреть на сайте IETF, а репозиторий доступен на Github по ссылке https://github.com/google/robotstxt.

Парсер представляет собой исходный код, который Google используют в составе своих продакшн-систем (за исключением мелких правок — вроде убранных заголовочных файлов, используемых только внутри компании) — парсинг файлов robots.txt осуществляется именно так, как это делает Googlebot (в том числе то, как он обращается с Юникод-символами в паттернах). Парсер написан на С++ и по сути состоит из двух файлов — вам потребуется компилятор, совместимый с C++11, хотя код библиотеки восходит к 90-ым, и вы встретите в ней «сырые» указатели и strbrk. Для того, чтобы его собрать, рекомендуется использовать Bazel (поддержка CMake планируется в ближайшем будущем).
Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Комментарии 44

Почему Math.Round открывает окно печати из браузера в Try .NET

Время на прочтение 1 мин
Количество просмотров 6K
Сегодня внимание общественности привлек забавный нелогичный баг, обнаруженный в Try .NET – инструменте, предназначенном для встраивания в документацию интерактивных примеров на C#. Посмотреть открытый issue можно на Github по ссылке.

Приведенный код при выполнении (при вызове метода Math.Round) вместо ожидаемого результата внезапно открывает окно печати из браузера:

using System;
public class Example
{
    public static void Main()
    {
        var x = Math.Round(11.1, MidpointRounding.AwayFromZero);
    }
}

Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 0

Space Invaders: теперь и в 512 байт (Assembler x86)

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

Казалось бы, ещё совсем недавно Space Invaders умещали в 1 килобайт, а теперь смогли уместить в один загрузочный сектор (512 байт). Автор программы — Оскар Толедо, пятикратный победитель IOCCC (International Obfuscated C Code Contest) и регулярный участник JS1K, также известный как создатель шахмат, которые занимают всего 392 байта.

Исходный код игры можно посмотреть в репозитории на Github: github.com/nanochess/Invaders

Для запуска вам потребуется nasm (Netwide Assembler), который можно скачать на официальном сайте. Игру можно собрать, выполнив команду:

nasm -f bin invaders.asm -Dcom_file=1 -o invaders.com

На самом деле, это всё ещё в 4 раза больше, чем весь размер оперативной памяти Atari 2600 — но уже с легкостью поместилось бы на её картридж, который предоставлял 2 килобайта памяти. Также, использование в коде программы инструкций ассемблера PUSHA/POPA требует наличия процессора 80186 и выше.
Всего голосов 26: ↑23 и ↓3 +20
Комментарии 16

Новый движок для новой Call of Duty

Время на прочтение 7 мин
Количество просмотров 24K
Одним из заметных событий прошедшей недели стал анонс новой части Call of Duty — ведь Call of Duty: Modern Warfare, ребут одноименного хита 2007 года, будет первой за 14 лет игрой серии, которая работает на новом движке, и к тому же будет поддерживать кросс-плей на PC, PS4 и Xbox One. На закрытом пресс-показе, устроенном для прессы и стримеров в Лос-Анджелесе, Activision показала 15 минут игрового процесса, чем вызвала небывалый восторг у публики. Всем остальным геймплей продемонстрируют только на E3, но, к счастью, произойдет это уже совсем скоро.


Удивительно, но похоже, что это действительно новый движок, а не обещания маркетологов Activision, которые вы могли слышать прошлые N раз; это подтверждают специалисты Digital Foundry, пообщавшиеся с разработчиками и выяснившие технические подробности.

Судя по ранним отзывам очевидцев, движок новой Call of Duty сможет составить полноценную конкуренцию актуальной версии Frostbite, поскольку разработчикам удалось достичь больших успехов по части картинки и звука. Разработка движка заняла 5 лет; в его создании принимала участие студия Infinity Ward Poland, которая была открыта в конце 2017 года с целью R&D. В создании игры принимают участие ветераны, покинувшие Infinity Ward после выхода оригинальной Modern Warfare и ушедшие в Respawn, а теперь вернувшиеся обратно поработать над ребутом (что само по себе забавно — ведь если бы не небывалый успех Modern Warfare и последовавший за ним скандал между Activision и отцами-основателями Infinity Ward, то Respawn и Titanfall никогда бы не появились на свет).
Всего голосов 25: ↑22 и ↓3 +19
Комментарии 51

Новые ключевые слова в Java

Время на прочтение 7 мин
Количество просмотров 13K
В ближайшем будущем в языке Java появятся новые фичи, над которыми сейчас идет работа в рамках проектов Valhalla, Panama и Loom. Расширение языка — дело непростое, тем более — языка, в котором акцент делается на обратную совместимость; поэтому для того, чтобы их интеграция в Java прошла органично, архитекторам языка приходится решать накопившиеся фундаментальные вопросы.

Вчера (8 января) Брайан Гетц, работающий в Oracle на должности Java Language Architect, опубликовал в рассылке Project Amber письмо «Нам нужно больше ключевых слов, капитан!», в котором предложил способ решения проблемы добавления в язык новых ключевых слов. Вследствие чего в языке могут появиться такие ключевые слова, как non-null, non-final, eventually-final и this-return (полный список ждет вас под катом в конце поста).

Поскольку в прошлом эта проблема возникала в языке нечасто, обычно над ней особо не задумывались и «старались как можно быстрее свалить с шеи»; из-за недостатков уже существующих подходов в будущем их применение будет проблематичным, и в связи с этим было решено сработать на упреждение. Предлагаемое решение: попытаться расширить набор лексических форм, которые можно использовать в качестве ключевых слов: разрешить ключевые слова, разделенные дефисом, в составе которых будет использоваться одно (или более) уже существующее ключевое слово или зарезервированный идентификатор.

Важное замечание: Брайн отмечает, что новые ключевые слова приведены исключительно в качестве иллюстративного примера, и что заострять на них свое внимание не стоит. Однако, очевидно, что перед нами продуманная демонстрация того, как синтаксис языка может измениться в будущем — в письме автор упоминает, что эта идея поможет добавить в Java многие желаемые недостающие языковые конструкции.
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 30

Мысли о современном C++ и игровой разработке

Время на прочтение 18 мин
Количество просмотров 30K
Новый год для игровых разработчиков начался с волны критики, обрушившейся в адрес комитета по стандартизации C++ после публикации Араса Пранкевичуса «Жалобы по поводу современного C++». Возник серьезный вопрос: действительно ли комитет стандартов потерял связь с реальностью, или все наоборот, и это игровые разработчики откололись от остального С++ сообщества?

Вашему вниманию предлагается перевод популярного поста Бена Дина, — ветерана игровой индустрии, проработавшего продолжительный срок в компаниях Blizzard, Electronic Arts и Bullfrog в качестве разработчика на C++ и тимлида, — в котором он отвечает на критику с позиции собственного опыта.

TL;DR: Комитет по стандартизации C++ не имеет скрытой цели игнорировать нужды игровых разработчиков, а «современный» C++ не собирается становиться «неотлаживаемым» языком.
На протяжении всей прошлой недели в Twitter шла активная дискуссия, в ходе которой многие программисты – особенно те из них, кто работает в сфере игровой разработки – высказались о том, что нынешний вектор развития «современного C++» не отвечает их потребностям. В частности, с позиции обычного игрового разработчика, все выглядит так, будто производительность отладки в языке игнорируется, а оптимизация кода становится ожидаемой и необходимой.

В силу того, что на 2019 год я успел проработать в игровой индустрии более 23 лет, у меня имеется собственное мнение, основанное на наблюдениях по данной теме применительно к игровой разработке, которым мне и хотелось бы поделиться. Важна ли для игровых разработчиков «отлаживаемость» и почему? В чем заключаются вопросы, связанные с ней?

Для начала — небольшой экскурс в историю.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 60

Неуловимый баг LittleBigPlanet

Время на прочтение 2 мин
Количество просмотров 41K
image

В истории игровой разработки можно обнаружить немало интересных багов, с которыми приходилось сражаться разработчикам. Впрочем, как следует из истории, рассказанной в Twitter техническим директором компании Media Molecule Алексом Эвансом (известен своим участием в демосцене конца 90-ых, серией LittleBigPlanet и игрой Rag Doll Kung Fu) на выходных, многие легенды нам еще только предстоит услышать.

Случай, о котором пойдет речь, произошел десять лет назад — в 2008 году. Во время разработки первой части игры LittleBigPlanet — оригинального паззл-платформера, который должен быть стать эксклюзивом для PlayStation 3 — разработчикам компании пришлось столкнуться с воистину неуловимым багом.

Обычно для получения «зелёного света» на выпуск игры на консолях требуется пройти сертификацию — выполнить некоторый набор требований, которые устанавливает платформодержатель. Сертификация может предполагать и такие специфические условия, как стабильная работа игры в течение суток без вылетов.

Процесс разработки LittleBigPlanet практически подошел к концу и оставалось всего две недели до того, как игра должна была «уйти на золото». Внезапно, тестировщик из отдела QA в Японии сообщил о том, что игра стабильно «падает», когда он оставляет ее работать на ночь. Естественно, теперь до исправления бага ни о каком выпуске игры не могло быть и речи.
Читать дальше →
Всего голосов 117: ↑114 и ↓3 +111
Комментарии 54

Безумие и успех кода Oracle Database

Время на прочтение 4 мин
Количество просмотров 79K
На этой неделе пользователи Hacker News решили обсудить вопрос «Каков максимальный объем плохого — но при этом работающего — кода вам доводилось видеть?» (позже к ним присоединились и пользователи Reddit). В комментариях было рассказано немало «веселых» историй про то, с чем мы все время от времени сталкиваемся; но больше всего внимания привлек рассказ про код «передовой СУБД, которую используют большинство компаний, входящих в список Fortune 100».

Победителем в номинации «лавкрафтовские ужасы» заслуженно стал рассказ бывшего разработчика Oracle, который работал над Oracle Database в период разработки версии 12.2. Объем кодовой базы СУБД на тот момент составлял 25 миллионов строк на языке C — и стоило вам изменить лишь одну из этих строк, как ломались тысячи написанных ранее тестов.

За прошедшие годы над кодом успело потрудиться несколько поколений программистов, которых регулярно преследовали жесткие дедлайны — и благодаря этому код смог превратиться в настоящий кошмар. Сегодня он состоит из сложных «кусков» кода, отвечающих за логику, управление памятью, переключение контекстов и многое другое; они связаны друг с другом при помощи тысяч различных флагов. Весь код связан между собой загадочным макросом, который невозможно расшифровать, не прибегая к помощи тетради, в которую приходится записывать, чем занимаются релевантные части макроса. В итоге, у разработчика может уйти день или два только на то, чтобы разобраться, чем же в действительности занимается макрос.
Читать дальше →
Всего голосов 82: ↑81 и ↓1 +80
Комментарии 160

Почему новый дизайн Gmail такой медленный?

Время на прочтение 3 мин
Количество просмотров 99K
image
Как известно, в 2018 году компания Google провела крупнейший редизайн интерфейса своего почтового сервиса Gmail. Как обычно, довольны им оказались далеко не все — и на этот раз есть вполне объективные причины для недовольства сервисом. Почему загрузка Gmail стала занимать очень много времени, а действия вроде удаления или архивирования цепочки писем могут выполняться 4-6 секунд?

Пару дней назад подобным вопросом задался пользователь Hacker News — и он получил ответ от анонимного сотрудника Google, хлестко проехавшегося по культуре разработки внутри компании и своим коллегам.

С его слов, все это происходит в силу того, что в Google не предусмотрено никаких наказаний за подобные «промахи».

В стенах компании активно поощряют запуски (launch) — публичные релизы чего-либо. И то, что продукты могут содержать лишь половину необходимых фич, не работать, работать только из-под Chrome и прочее — это никого не волнует, ведь их создателям за это ничего не грозит. Это — норма.
Читать дальше →
Всего голосов 163: ↑160 и ↓3 +157
Комментарии 393

«Самоуничтожающаяся» бета Fallout 76

Время на прочтение 5 мин
Количество просмотров 52K
image
«Игроки PC #Fallout76 B.E.T.A.: Мы в курсе проблемы с клиентом и разбираемся с ней. Пожалуйста, не нажимайте пока никаких кнопок в клиенте-лаунчере.»
— Поддержка Bethesda (@BethesdaSupport) Октябрь 30, 2018
Поучительная история, наделавшая немало шуму, приключилась на этой неделе с компанией Bethesda. Игры Bethesda всегда славились большим количеством багов; сегодня компания по-прежнему продолжает следовать заветам Buggerfall (TES II Daggerfall) и, кажется, на этот раз смогла выйти на новый уровень.

Речь идет о старте бета-теста PC-версии Fallout 76 — многопользовательском спин-оффе известной ролевой серии, больше напоминающему по своему духу Rust – который состоялся на этой неделе, 30 октября. По факту, бета представляла собой стресс-тест из четырех коротких сессий длительностью 4-5 часов — и стресс-тестом (для CDN и пользователей) ее можно назвать не только в прямом, но и в переносном смысле.

Разработчики умудрились просмотреть в лаунчере игры баг, из-за которого ее клиент самовольно удалял все файлы игры с компьютера пользователя при запуске лаунчера и/или клику по любой кнопке в нем. В результате, когда долгожданная бета (ради которой игроки и оформляли предзаказ) наконец стартовала, десятки тысяч пользователей, загрузивших игру заранее, были вынуждены снова целиком скачивать установочные файлы игры (почти 50 гБ), причем скорость скачивания упала до минимальных значений (около 1Mb/s). Когда 4 часа спустя бета закончилась, большинство из них в итоге так и не смогло попасть в Fallout 76.

Если учесть, что всего неделю назад компания разослала игрокам-подписчикам письмо, в котором предупреждала, что в бете им предстоит столкнуться с невиданными доселе багами, то можно сказать, что Bethesda не подвела.
Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Комментарии 105

Поглощение на практике: история из жизни

Время на прочтение 4 мин
Количество просмотров 22K
Новость о покупке IBM компании Red Hat разделила мнение общественности. Многие небезосновательно встревожены по поводу будущего открытых продуктов Red Hat; однако, как минимум Марк Литтл, вице-президент разработки в Red Hat, смотрит на будущее оптимистично.

В одном из обсуждений опытный enterprise-программист Хэнк, который начал программировать еще под Commodore 64, поделился рассказом о том, как переживали подобные изменения компании, в которых он на тот момент работал. Эта история будет близка всем тем, чей проект когда-либо был поглощен или закрыт. Перевод публикуется с разрешения автора.


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

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

Первые пару месяцев почти ничего не изменится — поскольку само слияние еще только предстоит провести, да и скорее всего не все контракты еще подписаны — но эта мысль накрепко засядет в вашей голове и будет регулярно напоминать о себе ноющей болью.
Читать дальше →
Всего голосов 84: ↑82 и ↓2 +80
Комментарии 27

Производственный ад «S.T.A.L.K.E.R.: Тень Чернобыля»

Время на прочтение 4 мин
Количество просмотров 74K
image

История разработки культовой игры-долгостроя S.T.A.L.K.E.R.: Shadow of Chernobyl, созданной украинской компанией GSC GameWorld и выпущенной в 2007 году, долгое время была окутана немалым количеством легенд. Причиной их появления было то, что в релизном варианте игра была слабо похоже на обещания, которые раздавали до этого игрокам — в силу вырезанного контента и возможностей теперь она напоминала скорее линейный шутер, чем амбициозную песочницу с открытым миром. Слухи утверждали, что виной всему — компания THQ, ответственная за издание игры на Западе.

За прошедшие десять с лишним лет многие из тайн прояснились. Различные участники событий поделились своими воспоминаниями; утекли всевозможные игровые билды; стали доступны исходники движка X-Ray Engine версии 1.6 (который был основательно проверен PVS-Studio); авторы многочисленных модов для игры постарались устранить недостатки игры, в том числе вернув вырезанный контент, и обеспечили ей долгую жизнь.

Сегодня портал Eurogamer опубликовал материал, основанный на проведенном недавно интервью с Дином Шарпом, работавшим на тот момент в THQ, — западном издателе S.T.A.L.K.E.R. — и дополненном фактами, поведанными Олегом Яворским (на тот момент — PR-менеджером GSC, ныне — Vostok Games). В нем откровенно рассказывается, что же на самом деле произошло со «Сталкером».
Читать дальше →
Всего голосов 62: ↑56 и ↓6 +50
Комментарии 119

Github.com отказывается от использования jQuery и переходит на чистый JavaScript

Время на прочтение 2 мин
Количество просмотров 53K
Сегодня Mislav Marohnić объявил о том, что разработчики Github избавились от jQuery на фронтенде GitHub.com. Казалось бы, в самом этом факте нет ничего примечательного, если бы не один интересный момент.

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

  • querySelectorAll (который предположительно был вдохновлен когда-то именно jQuery),
  • fetch для работы с AJAX,
  • delegated-events для обработки событий,
  • полифиллы для работы с DOM,
  • пользовательские элементы (Custom Elements), которые сейчас на подъеме.

Помимо Custom Elements, ничего другого из Web Components было решено не использовать. Разработчики присматривались к Shadow DOM и были бы не против прибегнуть к нему — однако, в силу того, что на полифиллах скорость поиска в DOM оставляет желать лучшего, им пришлось пока отложить эту затею.

Зачем разработчикам в принципе потребовалось все это сделать? По их словам, для того, чтобы «отдавать» посетителям меньше килобайт, иметь возможность использовать более явно выраженный синтаксис для выполнения манипуляций с DOM, а также ради возможности использовать библиотеку Flow.JS для статического анализа типов. По словам разработчиков, процесс ухода с jQuery занял годы.
Читать дальше →
Всего голосов 73: ↑70 и ↓3 +67
Комментарии 178

Почему открытие YouTube в Firefox или Edge может занимать в 5 раз дольше, чем в Google Chrome

Время на прочтение 2 мин
Количество просмотров 40K
Неожиданным открытием поделился сегодня с общественностью Крис Петерсон из Mozilla: как выяснилось, в данный момент открытие страницы YouTube в браузерах Firefox и Edge происходит в 5 раз медленнее, чем в Google Chrome. В чём же причина подобного явления?

Дело в том, что новый редизайн YouTube, в основе которого лежит библиотека Polymer, полагается на API Shadow DOM v0, которое было реализовано исключительно в Chrome, а с апреля этого года и вовсе признано deprecated.

В силу описанной причины для работы обновленного YouTube в Firefox и Edge вместо Shadow DOM v0 используется полифилл — который, разумеется, работает медленнее. На ноутбуке Криса первоначальная загрузка страницы занимает в Chrome 1 секунду, а под Firefox с использованием полифилла — целых 5 секунд. При последующей навигации по сайту падения производительности замечено не было. Под IE11 YouTube по-прежнему работает в старом дизайне без использования Polymer.

Причина подобного решения неизвестна. Возможно, внутренние метрики Google показали, что редизайн с полифиллом увеличивает вовлечение пользователей (user engagement) в Firefox и Edge сильнее, чем им вредит медленная загрузка сайта.
Читать дальше →
Всего голосов 50: ↑48 и ↓2 +46
Комментарии 65

Devilution: проект по реверс-инжинирингу Diablo

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

Как показывают годы, шансов увидеть оригинальный исходный код — или хотя бы ремейк — первой части Diablo у нас практически нет (событие The Darkening of Tristram в Diablo III в честь 20-летия выхода первой части — это, конечно, хорошо, но все же немного не то, чего ожидали поклонники). И пусть последнее обновление для игры вышло в 2001 году, и сама Blizzard давно перестала поддерживать и продавать ее — память о ней по-прежнему остается жива в наших сердцах. Что лишний раз и подтвердил некий GalaXyHaXz, решивший произвести реверс-инжиниринг игры.

Исходный код доступен на Github. Проект Devilution, который его автор GalaXyHaXz окрестил «деволюцией Diablo», занял у него свыше 1,200 часов — 4 месяца работы. Также не пропустите объемные комментарии автора, проливающие свет на исходный код игры, и расположенные в другом репозитории. Сам код пока выглядит неважно, но будет продолжать приводится в порядок по мере прогресса работы над другими модулями игры.

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

B 1998 году Blizzard отдала исходный код Diablo двум студиям: Synergestic Software, которая занималась разработкой дополнения Hellfire, и Climax Studios, работавшей над портом для Playstation. Отдел QA Sony в Японии не в первый раз «радует» своими утечками, отличились они и на этот раз — в японской версии порта был случайно забыт символический файл (a symbolic file), который включал в себя функции, данные, типы и многое другое. Это и позволило восстановить оригинальные функции, глобальные переменные, структуры данных и прочее. Бета-версия порта для Playstation также утекла, и в ней лежал еще один подобный файл, что значительно упростило задачу.
Всего голосов 40: ↑40 и ↓0 +40
Комментарии 28

Джон Кармак: Мои истории о Стиве Джобсе

Время на прочтение 6 мин
Количество просмотров 30K
Однажды моя жена спросила меня «Почему ты бросаешь то, чем ты занимаешься, когда Стив Джобс просит тебя сделать что-то для него? Для всех остальных ты так не делаешь».

Действительно, здесь есть над чем задуматься.

В юности я был поклонником компьютера Apple, Джобс и Возняк были для меня почитаемыми людьми, а желание иметь Apple 2 было определяющей чертой моего детства на протяжении нескольких лет. Годами позже, когда я впервые увидел компьютер NeXT на компьютерной выставке — в те времена, когда я уже продавал свое первое коммерческое ПО — он показался мне взглядом в будущее (но ценник был более чем в 10 000 $ — нехило!).

Когда Id Software стала успешной благодаря Commander Keen и Wolfenstein 3D, первой личной серьезной покупкой для меня стал не автомобиль — это был компьютер NeXT. Как вскоре выяснилось, для разработки нашего ПО он оказался весьма полезен, и в итоге мы перевели на оборудование NeXT всю нашу компанию.

Нам так нравились наши NeXT-ы, что мы хотели выпустить Doom со специальным логотипом «Разработано на компьютерах NeXT» на заставке. Однако, когда мы попросили разрешения на подобный шаг, нам было отказано.

Некоторое время спустя после релиза, — когда Doom начал свое шествие по планете и начал оставлять на ней заметный след, — мы узнали о том, что Стив изменил свое мнение по этому вопросу и был бы рад увидеть брендинг NeXT на игре — однако, этот корабль для него уже уплыл. Тогда мы обменялись несколькими сообщениями со Стивом Джобсом и я думал, что это круто.

Годы спустя, основываясь на своих наблюдениях и косвенных свидетельствах, я пришел к выводу, что в глубине души Стив никогда не был высокого мнения об играх — и что он всегда хотел, чтобы игры не имели настолько большого значения для его платформ, какое они занимали на самом деле. Я никогда не принимал это лично на свой счет.
Читать дальше →
Всего голосов 77: ↑71 и ↓6 +65
Комментарии 16

Составляем карту всего Интернета при помощи кривых Гильберта

Время на прочтение 3 мин
Количество просмотров 27K
Интернет велик. Очень велик. Вы просто не поверите, насколько умопомрачительно он велик. В смысле, вам может показаться, что диапазон блоков /22, который вы получили как локальный интернет-регистратор (LIR), это очень много — но в масштабах всего Интернета это так, орешки.

Конечно, на самом деле, он оказался не настолько уж и велик — не просто же так нам потребовался IPv6. Однако, это уже другая история.

Дело в том, что IPv4 (самая широко используемая версия протокола IP) задает лимит адресов, равный 2³². Это означает, что у вас есть примерно 4,2 миллиарда IP-адресов, с которыми вы можете работать — хотя по правде это не совсем так, поскольку крупные секции недоступны для использования:
Диапазон IP Применение
0.0.0.0/8 Локальная система
10.0.0.0/8 Локальная LAN
127.0.0.0/8 Loopback
169.254.0.0/16 Link Local
172.16.0.0/12 Локальная LAN
224.0.0.0/4 Мультивещание (Multicast)
240.0.0.0/4 “Для использования в будущем”
Диапазоны адресов (показанные в виде записи с применением бесклассовой адресации, CIDR) перечисленные выше, для нас «убираются» — а это 588 316 672 адресов, или примерно 13% от всего количества адресов.

Однако, учитывая, что у нас остается 3 706 650 624 адресов, это вроде бы не так уж и много, и находится в идеальной достижимости для отправки пакета каждому из них.

Итак… Это конечно же не первый раз, когда кто-то пытается сделать подобное — в Интернете хватает достаточного количества «фонового шума» (незатребованных пакетов), большинство из них создается системами, которые пытаются взломать другие системы.
Читать дальше →
Всего голосов 65: ↑65 и ↓0 +65
Комментарии 26

Комитет по стандартизации С++ срывает с себя оковы

Время на прочтение 4 мин
Количество просмотров 14K
Радикальная перемена в подходе к обновлениям и дополнениям в Стандарте C++ случилась на недавней встрече WG21, — или, скорее, это было изменение, которое «висело в воздухе» вот уже в течении нескольких последних встреч, и теперь наконец было обсуждено комитетом и задокументировано. Внимание читателей должны привлечь два ключевых пункта в самом начале документа «С++: планы на стабильность, скорость и реализацию языка» (C++ Stability, Velocity, and Deployment Plans [R2])":

  • Является C++ языком, в котором есть новые потрясающие возможности?
  • Известен ли C++ как язык, славящийся своей отличной стабильностью в течение долгого периода времени?

За ними следует следующее предложение (которое было согласовано на собрании): «Комитет должен быть готов рассмотреть дизайн/качество предложений даже в том случае, если эти предложения могут стать причиной изменения поведения языка или ошибки компиляции уже существующего кода».

Позади нас — 30 лет совместимости C++/C (ну хорошо, в последние 15 лет были по мелочи небольшие случаи, когда мы упирались в края и «заигрывали» с нею). Это замечательное достижение, за которое мы в течение вот уже более 30 лет благодарим Бьярна Страуструпа и 64 встречи, проведенные комитетом по стандартизации (Том Плум и Билл Плагер занимали их место в этом нелегком деле в промежуток между WG14 и WG21).
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Комментарии 23

Информация

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