Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Sony: PlayStation 5 получит обратную совместимость с PS4

Игры и игровые приставки
image

Глава Sony Interactive Entertainment Джим Райан подтвердил, что на новой PlayStation 5 будут доступны 99% протестированных игр для PS4. Такое заявление прозвучало в интервью японскому игровому журналу Famitsu.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Просмотры11K
Комментарии 28

Джон Кармак подтвердил, что Oculus Quest 2 не имеет совместимости с играми Oculus Go, хотя возможность её добавить была

ГаджетыAR и VRИгры и игровые приставки

Технический директор Oculus Джон Кармак подтвердил, что в новой гарнитуре виртуальной реальности Oculus Quest 2 не будет обратной совместимости с играми для Oculus Go. По его словам, он «полностью проиграл внутренние дебаты [в компании] по поводу обратной совместимости». 

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Просмотры4.9K
Комментарии 5

Линус Торвальдс о бинарной совместимости

Биографии гиков
Эпическое письмо Линуса Торвальдса от 8 марта 2012 года в списке рассылки разработчиков ядра Linux (Linux Kernel Mailing List) c трудом поддаётся переводу из-за обильного использования экспрессивной лексики.

Написано в ответ на сообщение Эрика Бидермана (Eric W. Biederman) того же дня.
>>Сохранение совместимости достаточно простое дело, так что оно
>>стоит того, но поддержка 30+ лет обратной совместимости...

Стоять.

Дело *не* в какой-то произвольно взятой «30-летней обратной совместимости».

Дело в том, что твой патч ЛОМАЕТ СУЩЕСТВУЮЩИЕ БИНАРНИКИ.

Так что хватит уже пороть чушь! Показали, что патч негодный, перестань сочинять отговорки и нести околесицу.

Конец истории. Бинарная совместимость важнее, чем *любой* из твоих патчей. Если ты продолжишь приводить аргументы или сочинять отговорки, я попрошу людей, чтобы они полностью игнорировали твои патчи.
Читать дальше →
Всего голосов 144: ↑114 и ↓30+84
Просмотры2K
Комментарии 189

Запуск старых игр для Windows

Open source
Tutorial
Recovery mode
Многие из нас время от времени любят поиграть в старые игры. Классика вроде Fallout I и II, Космические Рейнджеры, линейка Command & Conquer и т.д. Однако современные версии Windows не обладают достаточным уровнем обратной совместимости и очень часто многочасовые попытки запустить старую игру обречены на провал.

Одна из наиболее критических проблем — графика. Одни игры не могут работать с широкими экранами, другие, ни о чём не подозревая, пользуются ошибками в старых версиях DirectX или DirectDraw, третьи не могут жить без 16-битного цвета. Зачастую трудно определить конкретную проблему, но многие из них без особого труда сможет решить…
Wine
Всего голосов 70: ↑55 и ↓15+40
Просмотры279K
Комментарии 116

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

Разработка веб-сайтовPHP
Перевод
Вы верно прочли. Если целью вашего проекта является сохранение обратной совместимости — вы неудачник. Множество популярных проектов от PHP до Microsoft Windows заявляют об обратной совместимости между версиями. И да, я хочу сказать, что это не правильно.
Читать дальше →
Всего голосов 62: ↑24 и ↓38-14
Просмотры12K
Комментарии 33

Как правильно разрабатывать API с поддержкой обратной совместимости. Семинар в Яндексе

Блог компании ЯндексПроектирование и рефакторингAPI
Привет! Меня зовут Сергей Константинов, в Яндексе я руковожу разработкой API Карт. Недавно я поделился опытом поддержки обратной совместимости со своими коллегами. Мой доклад состоял из двух неравных частей. Первая, большая, посвящена тому, как правильно разрабатывать API, чтобы потом не было мучительно больно. Вторая же про то, что делать, если вам нужно что-то рефакторить и не сломать по дороге обратную совместимость.



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

Для разработчика обратная совместимость в первую очередь подразумевает, что единожды принятое обязательство предоставлять какую-либо функциональность невозможно отменить, исправить или перестать поддерживать.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Просмотры31K
Комментарии 24

Про обратную совместимость прикладных программ и выкапывание стюардесс

Исследования и прогнозы в IT


Давно ли тут не было холиваров Windows vs Linux? «Будут!» (с) Федя

Каждый раз, когда я переезжаю на новый ноут или переставляю ось, я повторяю один и тот же ритуал — выкапывание стюардессы. Точнее, нескольких стюардесс. У меня их около десятка, но есть TOP5.
Читать дальше →
Всего голосов 96: ↑65 и ↓31+34
Просмотры25K
Комментарии 287

Политика обратной совместимости при разработке фреймворка на примере Magento 2. Часть 1

PHPАнализ и проектирование системПроектирование и рефакторингРазработка под e-commerceMagento
image
*Поломанный кран в офисе Magento и быстрое решение воплощенное в жизнь одним из инженеров — типичный Backward Compatible фикс.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Просмотры7.9K
Комментарии 17

Запрещенные изменения в коде или продолжение истории ремонта одного крана

PHPПроектирование и рефакторингРазработка под e-commerceMagento

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

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

Откладывание рефакторинга на потом ведет к увеличению технического долга и созданию задач (user story) на рефакторинг, которые не имеют business value для product owner-a, а соответственно такие задачи не будут попадать в топ продуктового беклога.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Просмотры12K
Комментарии 7

Ухищрения аппаратной обратной совместимости в игровых приставках

Компьютерное железоИстория ITСтарое железоИгры и игровые приставки
Многим приходится иметь дело со старыми аппаратными интерфейсами: к примеру, это наследственные команды в процессоре или режимы работы оборудования. Программисты могут поспорить, что подобное усложняет разработку программного обеспечения, является проблемой с точки зрения безопасности и банально не нужно, поскольку софт работает хуже в режиме совместимости. Инженеры рвут волосы при очередном упоминании необходимости добавить поддержку старого оборудования. И их можно понять.

Но вычислительные машины ценны не своими характеристиками, а набором программного обеспечения, которое они могут запускать. Именно поэтому во многих ситуациях так важно обеспечивать обратную совместимость с оборудованием предыдущего поколения — нравится это разработчику или нет. Но иногда обратная совместимость принимает причудливые формы. Сложно подобрать правильное слово: то ли это «костыли», то ли вполне обоснованные решения.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Просмотры26K
Комментарии 17

Бесконечность проблемы обратной совместимости

Блог компании Mail.ru GroupПрофессиональная литератураСофт


(с)


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


Обратную совместимость легче выполнять, если предыдущие версии системы были разработаны с поддержкой встроенных функций, таких как хуки, плагины или API, которые позволяют добавлять новые возможности вашему софту, однако все из области backward compatibility (c упором на back) может стать головной болью для разработчиков.


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


Разработчик каждый раз принимает трудное решение: должен ли продукт быть обратно совместимым. «Объективно правильного» решения здесь просто нет — в мире достаточно примеров успешной обратной совместимости и отказов от нее. Возможно, чей-то опыт поможет сделать вам правильный выбор прямо сейчас.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Просмотры11K
Комментарии 14

MySQL — Использование переменных в запросе

MySQL
Из песочницы
Довольно часто спрашивают, есть ли аналоги аналитических (оконных) функций в MySQL. Примечание. На момент написания статьи таких аналогов не было, однако статья и ныне представляет собой академический интерес в плане разбора оригинального для MySQL подхода к использованию переменных.

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

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

Одним из этих средств является уникальный, нехарактерный для прочих СУБД механизм работы с переменными внутри запроса SQL. Мы можем объявить переменную внутри запроса, менять ей значение и подставлять в SELECT для вывода. Причем порядок обработки строк в запросе и, как следствие, порядок присвоения значений переменным можно задать в пользовательской сортировке!

Предупреждение. В статье подразумевается, что обработка выражений в предложении SELECT осуществляется слева направо, однако официального подтверждения такого порядка обработки в документации MySQL нет. Это необходимо иметь в виду при смене версии сервера. Для гарантии последовательности вычисления можно использовать фиктивный оператор CASE или IF.

Аналог рекурсии


Рассмотрим простой пример, который генерирует последовательность Фибоначчи (в последовательности Фибоначчи каждый член равен сумме двух предыдущих, а первые 2 равны единице):
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Просмотры31K
Комментарии 9

История реализации обратной совместимости с PS1 на Sony Playstation 2

Производство и разработка электроникиКомпьютерное железоИстория ITСтарое железоИгры и игровые приставки
Перевод

4 марта мы отметили юбилейную дату — прошло 20 лет после выпуска PlayStation 2 в Японии, за которым в том же 2000 году последовали продажи в Европе и Северной Америке. Без сомнения, всевозможные игровые медиа будут публиковать списки и ретроспективы в память одной из самых успешных и значимых с точки зрения культуры консолей. Скорее всего, в основном внимание будет сосредоточено на множестве уникальных и разнообразных игр, поспособствовавших превращению консоли в такую мощную силу, но не стоит забывать и об одном из фундаментальных столпов системы: обратной совместимости с подавляющим большинством игр из библиотеки первой PlayStation.

Эта особенность, которая ранее в основном была присуща только портативным консолям Nintendo и некоторым старым системам Sega, позволила создать ощущение связи поколений оборудования, которое до этого не часто возникало в мире консолей. Она дала PS2 фору, которой конкуренты могли только завидовать. Это стало наследием, в разной степени сохранявшимся во всех последующих системах Sony до PlayStation 4, когда Джим Райан в интервью Time произнёс знаменитую фразу: «Да кто будет в это играть?», отказавшись удовлетворять запрос потребителей в такой технологии.

Как же быстро поменялась ситуация в этом отношении.

Излишне говорить, что благодаря обеспечению компанией Microsoft обратной совместимости с Xbox и Xbox 360, ставшей важным аргументом к покупке Xbox One, отношение Sony к этой потребности изменилось: теперь обе компании стремятся в той или иной форме реализовать в своих следующих консолях обратную совместимость. Разумеется, все эти усилия должны были с чего-то начаться, и для Sony начало было положено бывшим инженером компании, о котором вы, скорее всего, никогда не слышали: Тэцуи Ииды (Tetsua Iida).
Читать дальше →
Всего голосов 51: ↑49 и ↓2+47
Просмотры17K
Комментарии 15

Дорогой Google Cloud, отказ от обратной совместимости тебя убивает

Open sourceGoogle Cloud PlatformОблачные сервисыIT-компании
Перевод
Чёрт возьми, Google, я не хотел снова писать в блог. У меня так много дел. Ведение блога требует времени, энергии и креатива, которые я мог бы использовать с пользой: мои книги, музыка, моя игра и так далее. Но ты меня достаточно разозлил, и придётся это написать.

Так что давай покончим с этим.

Начну с небольшой, но поучительной истории из тех времён, когда я только начал работать в Google. Знаю, что в последнее время я наговорил много плохого о Google, но меня расстраивает, когда родная компания регулярно принимает некомпетентные бизнес-решения. При этом нужно отдать должное: внутренняя инфраструктура Google действительно экстраординарная, можно смело утверждать, что сегодня нет ничего лучше. Основатели Google были гораздо лучшими инженерами, чем я когда-либо стану, и эта история только подтверждает данный факт.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Просмотры17K
Комментарии 49

Обратная совместимость на консолях Sony

Читальный залКомпьютерное железоСтарое железоИгры и игровые приставки

Представленная в 1999 году консоль PlayStation 2 была способна воспроизводить практически все игры с PlayStation 1 и даже поддерживала карты памяти и контроллеры первой модели. Но это не первая приставка с поддержкой обратной совместимости. К Sega Genesis выходил адаптер Power Base Converter, позволяющий запускать игры с Master System. А ещё более ранняя Atari 7800 запускала почти все картриджи Atari 2600, и это первая консоль с поддержкой такой функции.


image
Atari 7800 и Sega Genesis с адаптером


Но вернёмся к PS2.


Процессор ввода-вывода консоли — это центральный процессор от PS1. В поздних моделях его заменили чипом с архитектурой PowerPC, а ядро PS1 эмулировалось уже программно. Таким образом некоторые игры с PS1 работают некорректно на поздних моделях PS2, если вообще запустятся.


Одной из аппаратных особенностей Playstation 2 является наличие векторных модулей VU0 и VU1. VU0 используется для трансформации полигонов, физики и других вещей, имеющих отношение к геймплею. Когда консоль работает в режиме PS1, блок реализуют поддержку оригинального контроллера — GTE (Geometry Transformation Engine). В PS1 он использовался для работы с трёхмерной графикой и был размещён на одном кристалле с центральным процессором. Модуль VU1 используется для трансформации полигонов, освещения и других вычислений, связанных с визуализацией.

Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Просмотры13K
Комментарии 13

Постановка проблемы обратной совместимости

Проектирование и рефакторингAPI

Как обычно, дадим смысловой определение «обратной совместимости», прежде чем начинать изложение.


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

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Просмотры1.7K
Комментарии 4

Слабая связность

API

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


Сильная связность и сопутствующие проблемы


В предыдущих разделах мы старались приводить теоретические правила и принципы, и иллюстрировать их на практических примерах. Однако понимание принципов проектирования API, устойчивого к изменениям, как ничто другое требует прежде всего практики. Знание о том, куда стоит «постелить соломку» — оно во многом «сын ошибок трудных». Нельзя предусмотреть всего — но можно выработать необходимый уровень технической интуиции.


Поэтому в этом разделе мы поступим следующим образом: возьмём наше модельное API из предыдущего раздела, и проверим его на устойчивость в каждой возможной точке — проведём некоторый «вариационный анализ» наших интерфейсов. Ещё более конкретно — к каждой сущности мы подойдём с вопросом «что, если?» — что, если нам потребуется предоставить партнерам возможность написать свою независимую реализацию этого фрагмента логики.

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Просмотры6.5K
Комментарии 3