Приходится перепаковывать контейнеры. У нас на JS написан парсер контейнера mp4, мы нарезаем видеопоток в нужных местах и заворачиваем в такой контейнер, который ожидает MSE. Эти заморочки — именно та причина, по которой не все комбинации сейчас поддерживаются. Скажем, мы не умеем FLV играть как HTML5 video, хотя это теоретически возможно.
Да, объекты с одинаковой структурой будут иметь одинаковое компактное представление в памяти. А вот код obj[memberName] должен скомпилироваться в некоторую конструкцию, которая готова к любому значению переменной memberName.
Нет ничего удивительного в том, что obj.member лучше поддаётся оптимизации, чем obj[memberName], потому что каждый раз неизвестно, какое значение лежит в переменной memberName. Первое может быть скомпилировано в доступ по константному смещению в объекте, а второе всегда должно быть готово к любому значению memberName.
Я проверил этот вопрос и с уверенностью утверждаю, что на данный момент (к сожалению, ничего не могу сказать о моменте публикации апдейта на adios-hola.org) мы исправили все описанные ими уязвимости и выпустили обновления ко всем нашим продуктам.
В каждом случае исправление было фундаментальным, а не направленным на то, чтобы «сломать тестер».
Если и теперь в новейших версиях есть уязвимости, то мы очень хотели бы о них узнать. Скоро объявим вознаграждение за такие сообщения.
Мы не ломали специально тестер, как они утверждают.
Я проконсультируюсь с коллегами, чтобы выяснить, для всех ли упомянутых на adios-hola.org/advisory.txt проблем уже вышли исправления в публичных релизах, и отвечу на Ваш вопрос.
Если среди пользователей этого провайдера найдётся кто-то технически грамотный, кто согласился бы помочь нам поисследовать эту проблему, то постараемся исправить.
Статья названа с огромнейшей претензией. Увы, только code review человеком может не дать написать (вернее, не дать сделать частью проекта) плохой код. Робот может в лучшем случае обеспечить внешнее соответствие кода поверхностным стандартам оформления.
Расположение фигурных скобок, отступы и стиль именования переменных — мелочи. Конечно, хорошо, когда в проекте соблюдается определённый стиль, но не уверен, что для этого непременно нужен робот-полицейский. Нормальные программисты и так соблюдают стандарты оформления, а если в 1% случаев случайно или намеренно нарушают, стоит ли этот 1% применения специального продукта? Наверняка ведь в проекте есть проблемы поважнее участков кода с не по правилам расставленными отступами.
Но главное, что даже когда такой робот есть, лучшее, что он может гарантировать — это вот эти самые мелочи. Как только вы пытаетесь применить автоматику к более серьёзным требованиям (например, «каждая функция должна быть документирована»), он сразу начинает пробуксовывать.
Например, робот требует документирующего комментария к каждой функции. А у программиста аврал, и он не спал 36 часов. Что он напишет, чтобы робот успокоился? «Finds optimal path» в комментарии к функции FindOptimalPath. Или вообще «Does some stuff». И даже если комментарий написан добросовестно, как роботу проверить, не забывает ли программист обновлять его при изменении логики кода? Как обеспечить, чтобы у переменных, функций, классов были понятные имена, отражающие их сущность? Как обнаружить роботом спагетти-код и десятки других антипаттернов?
В общем, какая-то ценность у автоматических средств контроля есть. но не надо выдавать их за волшебный способ не дать программисту написать плохой код. Это может сделать только другой (хороший) программист.
Всё было немного не так. Мы не отправляли Opera Mini для iPhone (хотя бы по той причине, что она ещё не готова), а они не отклоняли. В какой-то момент у нас был экспериментальный билд для iPhone, который запускался и даже не очень часто падал. Тогда-то и начались предположения о том, что Apple, наверне, не пропустит конкурирующий браузер, хотя на практике этого никто не проверял.
Для того, чтобы веб-страница (с Вашего разрешения) могла узнавать, где Вы находитесь в данный момент, и как-то использовать эту информацию. Например, Яндекс.Пробки могли бы начинать с места, где Вы находитесь, поиск товаров мог бы предлагать Вам прежде всего близлежащие магазины, сайт глобальной корпорации мог бы не начинать с вопроса о том, в какой стране Вы живёте. Сейчас некоторое подобие этого делается по IP-адресу, очень неточно.
RTSP пока не поддерживаем, но, возможно, будем.
Измерения скорости это подтверждают.
В каждом случае исправление было фундаментальным, а не направленным на то, чтобы «сломать тестер».
Если и теперь в новейших версиях есть уязвимости, то мы очень хотели бы о них узнать. Скоро объявим вознаграждение за такие сообщения.
С Вашей помощью я постараюсь выяснить, в чём беда — продолжим общение личными сообщениями. Спасибо!
Я проконсультируюсь с коллегами, чтобы выяснить, для всех ли упомянутых на adios-hola.org/advisory.txt проблем уже вышли исправления в публичных релизах, и отвечу на Ваш вопрос.
Расположение фигурных скобок, отступы и стиль именования переменных — мелочи. Конечно, хорошо, когда в проекте соблюдается определённый стиль, но не уверен, что для этого непременно нужен робот-полицейский. Нормальные программисты и так соблюдают стандарты оформления, а если в 1% случаев случайно или намеренно нарушают, стоит ли этот 1% применения специального продукта? Наверняка ведь в проекте есть проблемы поважнее участков кода с не по правилам расставленными отступами.
Но главное, что даже когда такой робот есть, лучшее, что он может гарантировать — это вот эти самые мелочи. Как только вы пытаетесь применить автоматику к более серьёзным требованиям (например, «каждая функция должна быть документирована»), он сразу начинает пробуксовывать.
Например, робот требует документирующего комментария к каждой функции. А у программиста аврал, и он не спал 36 часов. Что он напишет, чтобы робот успокоился? «Finds optimal path» в комментарии к функции FindOptimalPath. Или вообще «Does some stuff». И даже если комментарий написан добросовестно, как роботу проверить, не забывает ли программист обновлять его при изменении логики кода? Как обеспечить, чтобы у переменных, функций, классов были понятные имена, отражающие их сущность? Как обнаружить роботом спагетти-код и десятки других антипаттернов?
В общем, какая-то ценность у автоматических средств контроля есть. но не надо выдавать их за волшебный способ не дать программисту написать плохой код. Это может сделать только другой (хороший) программист.