• Текстовая трансляция конференции Build 2016
    0
    Спасибо за разъяснение.

    Я не указал в своем комментарии, что вел речь исключительно о портировании игр — ведь Xbox One все-таки по старой памяти воспринимается больше как игровая консоль. Недавний Gears of War: Ultimate Edition на Windows и Xbox One по утверждению различных изданий — это именно что универсальный порт, сделанный в виде UWP, но ведь данная игра явно не подвержена ограничениям виртуалки с ОС и имеет доступ к основной памяти для игр. Поэтому после вашего комментария я предположил, что обладатели полноценных девкитов каким-то неизвестным образом имеют доступ к тем самым 5 Гб памяти в UWP-играх. На самом деле, даже когда эти 5 Гб есть, для того чтобы из них выжать максимум, приходится писать сложные собственные аллокаторы памяти с учетом архитектуры конкретной консоли — по крайней мере, на PS3 и PS4.

    Казуальные мобильные игры будут чувствовать себя хорошо, они не упрутся в эти лимиты. Для проектов больше среднего на Unity 1 Гб будет маловато из-за неоптимального использования памяти, UE4 под UWP пока недоступен но он захочет еще больше. Те, кто пишет на C++ & DirectX 11, смогут позволить себе выжать все соки, но мне кажется, что подобная связка сейчас характерна скорее для студий, чем для одиночек — которые в большинстве пользуются именно UE и Unity, и многие из них не привыкли что-то там оптимизировать в принципе.

    Надеюсь, это прояснит мой изначальный комментарий.
  • Текстовая трансляция конференции Build 2016
    0
    Логически — разумеется. Начинание само по себе хорошее и очевидно рассчитано на инди, т.к. у всех ААА-разработчиков, которым нужно писать свои велосипеды для хитрого использования памяти, уже есть девкиты.

    Но ведь в документации нигде не сказано, что UWP-игры на Xbox One будут чем-то отличаться от приложений, т.е что они будут выполняться за пределами этих 3 Гб, поэтому я вслед за пользователями с neogaf предположил, что это какой-то restricted UWP:
    UWP apps and games running on Xbox One share resources with the system and other apps. Therefore, UWP apps and games will have access to the following resources: In future releases, the maximum available memory will be 1 GB.

    For games development, it’s important to keep in mind that Xbox One, like other games consoles, is a specialized piece of hardware that requires a specific hardware-based development kit to access its full potential.

    [MSDN] System resources for UWP apps and games on Xbox One

    Там между прочим еще и CPU & GPU limits указаны, для GPU это 45%. Других достойных источников я по теме не нашел.
    Этот факт подразумевается само собой разумеющимся для всех, кто имел дело с UWP, и просто отдел маркетинга не досмотрел?
  • Текстовая трансляция конференции Build 2016
    –1
    The preview of Dev Mode on Xbox One is available to anyone now.

    The preview only offers access to 448 MB of the Xbox One's 8 GB of RAM.
    When Dev Mode comes out of preview, developers will have access to the full 1 GB of RAM supported for UWP Xbox games.

    Это пять!
  • Компания Crytek анонсировала новый движок CryEngine V
    +2
    Надо было это сделать год назад, сейчас уже поезд ушел. Два крупнейших коммьюнити уже сформировались вокруг UE4 и Unity — по ним доступно огромное количество тьюториалов и материалов. Мигрировать проекты на CryEngine никто не собирается.
    Касательно именно движка — доступная полгода назад четвертая версия сильно уступала конкурентам как в плане самой архитектуры, так и в мелочах — даже основные тулзы регулярно крашились.
  • Как работают над Chromium
    0
    Если стало интересно, то в продолжение темы есть видео с субтитрами на английском с Google Test Automation Conference 2014.
  • Анонс C++ Core Guidelines
    0
    Единственный встретившийся мне за эти дни комментарий про нее здесь, где автор пишет, что инструмент намечается очень полезный для реального кода, однако «the static analysis is 'local', which I understood as meaning it can look at one function at a time (plus any visible class definitions and signatures of called functions, but not their bodies)».
    В октябре выйдет всего лишь превью-версия от Microsoft, затем наверняка будут улучшать производительность.
  • Анонс C++ Core Guidelines
    0
    Да. Страуструп не просто так сделал акцент на написание type-safety и memory-safety кода на C++.
    Rust также упоминает Герб Саттер в качестве одного из источников вдохновения.
    А на Reddit обсуждали конкретные заимствования.
  • Akka, акторы и реактивное программирование
    0
    Для тех, кто как и я заинтересовался комментарием: если запросить бесплатный отрывок с www.typesafe.com, то на почту прилетит купон на скидку на саму книгу в 45% для покупки на manning.com.
  • Анализ защиты Sony PlayStation 4
    +2
    Спасибо dordzhiev за поддержку, он прав — кроме реверс-инжиниринга исходного кода, здесь больше ничего не придумаешь.

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

    Давайте рассмотрим пример с системным вызовом getpid из описания репозитория фреймворка JuSt-ROP (настоятельно рекомендую прочитать, поскольку там даны некоторые объяснения):

    var chain = new rop();
    
    try {
        chain.syscall("getpid", 20);
    
        // rax is the return value
        chain.write_rax_ToVariable(0);
    
        chain.execute(function() {
            console.log("PID: " + chain.getVariable(0).toString());
        });
    }
    catch(e) {
        logAdd("Incorrect gadget address " + e.toString(16));
    }
    

    chain — это объект класса rop(), который определен в файле just-rop.js и содержит в себе функции syscall (для осуществления системного вызова, который реализуется несколькими вызовами функций add()), add (для записи инструкции по адресу) и набор функций-хелперов write_<имя_регистра>_ToVariable / read_<имя_регистра>_FromVariable для чтения/записи регистра из/в переменную.

    В файле gadgets.js описаны гаджеты в следующем формате:

    gadget(instructions, module, address)

    Спустимся по коду вглубь. В syscall() мы вызываем функцию add(), передавая в нее имя одного из гаджетов (для получения его адреса) и значение:

    this.add("pop rax", systemCallNumber);
    if(typeof(arg1) !== "undefined") this.add("pop rdi", arg1);

    Функция add производит следующее: берет адрес гаджета, записывает его по адресу длины цепочки chainAddress + chainLength, затем прибавляет к длине цепочки еще 8 (по всей видимости, бит, для следующего адреса) и записывает по следующему адресу переданное в add значение.

    Функция add для записи значения вызывает функцию setU64into(). Это функция, объявленная глобально в файле exploit.jswindow.setU64into(). Функции из этого файла выглядят как реализация уязвимости WebKit CVE-2012-3748, насколько я понял там все завязано на переполнении переменных типа u32/u64 в V8, но чтобы разобраться в деталях ее работы, надо уметь писать экплойты для WebKit. В принципе, можете попробовать разобраться по презентации.

    После того, как chain.write_rax_ToVariable(0); запишет возвращенное вызовом значение регистра rax в переменную, его можно будет получить при помощи chain.getVariable(0).
  • Анализ защиты Sony PlayStation 4
    0
    1. Насколько я понял по коду, специального API нет — только запись по адресам при помощи хаков, только хардкор. Адреса становятся известны после эксплуатации уязвимости Uint32Array. Алгоритм подробно расписан в exploit.js, системные вызовы делаются функциями из just-rop.js при помощи установки значений в адреса памяти. Во многом код автора поста — это расширенная версия эксплойта от nas, в частности он точь-в-точь перенес этот кусок из старого кода.
    2. Да, в принципе можно просто перейти в браузере по ссылке cturt.github.io/PS4-playground. Правда, проверить не удалось — на прошивке 2.51 эксплойт уже не работает; видимо, поменялись адреса или закрыли уязвимость.
  • Анализ защиты Sony PlayStation 4
    +1
    По слухам, с ней дела гораздо серьезнее. Начиная с того, что если тут ядро частично фактически открыто, то в случае PS Vita ничего подобного нет.

    Полноценный нативный хак Rejuvenate для PS Vita с прошивкой от 3.00 до 3.51 вышел совсем недавно, в июне, и он пока что кроме «Hello, world!» ничего запускать не умеет. Давно и успешно взломана часть, которая является эмулятором для запуска игр с PSP — для установки этих хаков требуется успевать скачивать специальные игры с эксплойтом из PSN.

    Все известные мне новости по теме выкладываютсяздесь.
  • Отъявленный программист: лайфхакинг из первых рук
    +4
    «Блогератор» хорош! Бывает, перейдешь туда прочитать одну статью вроде этой, и в итоге так и проводишь там весь вечер. Там встречаются и полезные технические интервью, вроде недавнего про PHP7 с Дмитрием Стоговым.

    Насчет книги не знаю, не читал. Судя по оглавлению — тесно пересекается с тематикой блога.
  • Golang в AeroFS
    +1
    В теории, ничто не мешает писать на Go и монолиты. Есть мнение, что связка «Go + микросервисы» во многом появилась из-за нынешней моды на микросервисы в целом. Однако это уже переросло в стереотип насчет языка, и такими темпами мы монолитов на Go не увидим — а ведь было бы интересно.
  • Многопоточный SOCKS 4 сервер на Qt
    0
    Спасибо за статью!
    Последний абзац заинтриговал. Есть ли какие-то общепринятые практики, куда развивать пример в случае задач из разряда highload? Или это тема для следующего поста? :)
  • Почему Go и Rust не соперники, а чертовы враги
    0
    Сам Страуструп совсем недавно на выступлении сказал, что признает проблему отсутствия у коммьюнити центра своим большим недосмотром. Одна из причин — отсутствие затрат на маркетинг, которые могли бы позволить в свое время наладить обмен информацией между программистами, и библиотеками в частности. Правда, при этом он заметил, что существуют «маленькие империи», вполне себе неплохо живущие со своим набором библиотек и тулзов, причем у некоторых из них больше 100К пользователей.
  • Эволюция Go
    +2
    Увы, пакета net/soap нет в стандартной библиотеке, и по всей видимости вряд ли он когда-нибудь появится. Встроенного клиента/сервера нет. Поэтому о полной поддержке речи не идет точно. Остаются проекты пользователей неизвестного качества.

    В стандартной библиотеке нет поддержки WSDL, поэтому приходится вручную описывать структуры. Полузаброшенные костыли на Github вроде этого и этого (посвежее) умеют генерить из XSD/WSDL .go-файлы со структурами. Для валидации по схеме ничего нет — этот вопрос время от времени возникал в рассылке go-nuts и оставался без ответов (предлагали взять биндинги к libxml2 и написать самостоятельно). Про совместимость ничего не скажу, предполагается, что придется генерить запросы руками и разбирать их также.

    В основном гуглятся только простые примеры вроде такого. Полезный опыт описан здесь и здесь, по второй ссылке приведен более сложный и интересный пример вместе с жалобами на трудности работы с encoding/xml.

    Я эксперименты с SOAP в Go прекратил, поэтому точнее не подскажу. Сам интереса ради хочу попробовать чистый C + gSOAP/cSOAP.
  • Эволюция Go
    0
    Я немного возился с SOAP и клиентом при помощи стандартных библиотек в ноябре прошлого года, это было не самое приятное занятие (особенно если сравнивать по удобству с SoapClient в PHP), однако вроде работало. Что там сейчас — надо смотреть, возможно с библиотеками стало удобнее.
  • Эволюция Go
    +2
    Год назад я заинтересовался Go как раз после замечательного доклада Дмитрия на DevConf — помнится, в том числе чатик он там писал за пять минут. В результате я увлекся историей развития ЯП (и вещами вроде Plan 9), их более современными фичами и алгоритмами, поэтому мне близко было именно это выступление. По-моему, до трех ночи я не засиживался уже месяца три, тем более в пятницу вечером и за переводом.

    Честно говоря, было бы лучше, если бы Дмитрий сам опубликовал пост по теме на Хабре — для меня как-то странно было бы переводить с английского на русский то, что изначально было на русском :) В любом случае, насколько мне известно, перевод его выступления должен скоро появиться на Хабре.
  • Нативная UI-библиотека для Go
    +1
    В golang-nuts несколько дней назад автор отписывался, что он всего лишь на выходных накидал проект и не ожидал такой популярности.
    Там еще ничего не готово.

    Мои пять копеек насчет трендов: в итоге крупные компании с толстым маркетинговым бюджетом продавят то решение, которое будет им выгодно, причем по причинам нам неизвестным. Причины, по которым лично я не хочу проснуться в мире «JavaScript Everywhere» основываются на моем личном опыте и интервью с создателями языка, прочитанными в книге Coders at Work; это не мешает мне использовать данный язык для своих целей там, где он отлично подходит — в web-интерфейсах. С теми же JS-фреймворками для разработки игр у меня исключительно отрицательный опыт на протяжении нескольких лет.
  • Do not be evil
    +3
    Все это выглядит как широко известная в узких кругах проблема:

    image
  • «Хабрахабр» представляет «Мегамозг»
    +6
    Осталось дождаться нового идиод-хабра и 750 рублей за вход.
  • Большая подборка функций хеширования на Github
    0
    Реализован только ГОСТ 34.11-94 по RFC 5831, использован тестовый набор блоков оттуда же (gosthash.c).
  • Как Composer на 70% ускорили
    +1
    Да, я вот на него и намекал.
  • О Symfony 3.0
    +4
    Вот PHP 7 Timeline RFC, релиз запланирован на середину октября 2015 (причем еще далеко не факт, что все пойдет по плану); при этом Symfony 3 собрались релизить в ноябре 2015 — всего лишь месяц спустя.
    Так что PHP 7 — это конечно круто, но скорее всего чисто физически невозможно. С другой стороны, по словам Anthony Ferrara (ex-PHP Core Team) переход большинства разработчиков на PHP 7 пройдет гораздо быстрее, чем в свое время на пятую версию.
  • Go исполнилось 5 лет
    0
    Вам спасибо за интересный комментарий, я-то в посте всего лишь шапочно пробежался по роадмапу. Про GC поправил.
  • Задай вопрос эксперту и выиграй билет на Highload!
    0
    Очень интересно узнать про проектирование, конкретно — высоконагруженных backend-сервисов.

    Как организована архитектура и процесс проектирования? Ведете ли проектную документацию? Насколько она детализирована — что в ней раскрывается, что остается за бортом, насколько подробно все это описывается (речь про структурные схемы/блок-схемы с описанием/описание протоколов и форматов взаимодействия внутренних и внешних компонентов)? Как определялись эти стандарты? Какие средства используются, как ведется версионирование?

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

    Ну и небольшой вопросик вдогонку — как там на сегодняшний день обстоят дела с Go? Появился ли в продакшне, удалось ли «забороть» все проблемы с garbage collectorом?
  • «Хабрахабр» представляет Geektimes
    +8
    Ну, всех с почином!
  • Что почитать на досуге. Дайджест новостей игровой индустрии за август
    0
    >> «Как консоли могут эволюционировать в будущем, а XBOX One – победить PS4»
    Да, конечно.
    The Xbox One was released in Japan today Sep 4 2014 (local time) and here is what happened...
    image
    image

    Потому что на PS4
    image

  • GAMESCOM 2014: дайджест новостей от Microsoft, Sony, Electronic Arts
    +1
    Bloodborne — нечто.
    Dark Souls на стероидах, когда смотришь ролик — как будто сам снова в DS играешь. Второй день под впечатлением. Стильно, мрачно и средневеково — такой, наверное, была для своего времени первая часть Diablo.
    Жаль, что конец марта 2015, долго еще, и что только PS4.
  • Microsoft воссоздала веб-сайт 1994 года
    0
    Если сделать скидку на сегодняшний день, то судя по названию эта ссылка должна вести на блог про невероятные приключения Go-программиста в Microsoft.
  • «Человек на острие ножа» — Джон Кармак, вехи достижений и вклад в игровую индустрию
    +1
    Это просто праздник какой-то! Буду терпеливо ждать.
  • Видеозаписи докладов конференции Golang Moscow
    +2
    Я сам узнал только сегодня вечером, нашел по хэштегу #golang в Твиттере. А так есть вот и вот от artem_kovardin.
  • «Человек на острие ножа» — Джон Кармак, вехи достижений и вклад в игровую индустрию
    +6
    Мне категорически понравился Rage – не знаю почему, но от него пахло старой доброй американской научно-фантастической литературой! И что-то мне подсказывает, что Кармак на это действительно повлиял – он любит всякое такое; точно знаю, например, про «Нейроманта». Аналогично, пусть Doom 3 тоже был и не самой лучшей игрой на свете, но зато — и это главное — весьма запоминающейся и оригинальной игрой. Вряд ли кто-то еще позволит себе такое выпустить в ближайшем будущем — у инди сил на это не хватит, а «зубрам» выгоднее очередной Call of Duty сделать.

    Правда, с «классикой», над которой работало множество одаренных людей, я конечно эти две игры в один ряд вряд ли поставлю, но для меня лично после 2004 с D3 и HL2 как-то не хватает подобной очередной «вехи»… да и наверное не будет ее уже. При всем уважении к свежему Wolfenstein (а он его заслуживает – как показательный пример того, в каком направлении могут двигаться современные шутеры, чтобы «никто не ушел обиженным») – скорее, это просто хорошая и очень качественная игра. Поэтому от ребута Doom я ничего не жду, разве что посмотреть интересно – ведь Bethesda там запросто и открытый мир могла сделать, с какодемонами и морпехами. Но к развитию жанра 3D-шутеров от первого лица все это имеет уже весьма отдаленное отношение.
  • Изучаем PHP изнутри. Zval
    +3
    Спасибо за замечательное разъяснение! Теперь до меня дошло.
  • Изучаем PHP изнутри. Zval
    0
    Доклад был отличный, это да! А про zval и остальное на русском действительно многим полезно почитать будет, включая меня самого :)
    Насчет phpng — я так понял (вполне возможно, что неправильно), что прирост производительности при работе с HashTable будет в каких-то одних случаях, а в других будет что-то вроде fallback к старому варианту и соответственно никакой выгоды. Но я не запомнил, о каких случаях шла речь. Буду рад, если кто подскажет.
  • Изучаем PHP изнутри. Zval
    +3
    Be aware: в новом phpng (потенциальный php 5.7) все будет немного по-другому.
  • Indie Cindy
    0
    Спасибо за ссылку. Оказывается, это не только теории, даже статистика есть.
    С мыслями согласен. Помнится, в свое время месяцами мог играть в демки стратегий или симуляторов, которые разработчики иногда еще и специально «лочили» на максимальном уровне сложности, это было весело. Демо первой Half-Life и вовсе казалось отдельной полноценной игрой.
    Но времена меняются, рынок диктует другие правила.
  • Комментарий из публикации, перенесённой в черновики.
  • Открыты исходники первых игр Джона Кармака
    +3
    Я посмотрел «по диагонали», но так понял, что это логика поведения монстра, который преследует игрока – выбор пути, по которому монстр идет за ним.
  • Открыты исходники первых игр Джона Кармака
    +6
    Вместо него все ждали Watch Dogs – а на деле вон оно как вышло :)