Встреча
Смотря как поглядеть
Медаль программисту
Тролль заплатит за все
Патентный тролль Lumen View оплатит расходы противника в проигранном патентном споре

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

Читать дальше →
Браслет Phyode W/Me. Персональный анализатор жизни
Продолжая знакомить вас с интересными гаджетами, сегодня я добрался до устройства W/Me. В прошлый раз был браслет Polar Loop, который выполнял довольно стандартные функции: шагомер, пульсометр, подсчёт потраченных калорий. В W/ME всё не так, поэтому его и нельзя назвать фитнес-трекером в обычном понимании этого слова. Скажем так, самое обычное из того, что он умеет — это измерение пульса. А вот остальных функций я в браслетах вообще не встречал. Ну что ж, начинаем разбираться?

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

Читать дальше →
1 января 1904, 1970, Youtube, международный конфликт и кривые руки
К сожалению, давно пропали топики-ссылки, но иногда бывают крайне занимательные вещи из первых рук. Рекомендую пост Анатолия Воробея (работает разработчиком в «Гугле»).
В видеоформате MP4 (стандарт MPEG-4) есть возможность записать «время создания» любого потока данных, с помощью специальной метки. Значение этой метки в стандарте: количество секунд, прошедших с 1 января 1904 года, или так называемое «время по эпохе макинтоша», потому что маки первыми стали использовать такой отсчет времени. Меж тем, в современных серверах намного проще иметь дело с «временем по эпохе Юникса», а именно количеством секунд, прошедших с 1 января 1970 года. В результате этого, во множестве программ, которые работают на Линуксе или других юниксовских операционных системах, есть кусок кода, который выглядит примерно так:
Но есть маленькая крохотная незаметная проблемка. Часть стандарта MPEG-4 — исходники библиотек, которые умеют читать и писать mp4-файлы, так reference software на C++, которым все могут пользоваться, чтобы позаимствовать или сравнить со своим кодом. Полное название этой части стандарта: ISO/IEC 14496-5. Если вам интересно, вы можете скачать эту часть стандарта бесплатно с официального сайта. И если вы посмотрите на исходники, то увидите, что там используется другое значение этой константы, а именно 2 082 758 400. Это ровно на 86 400 секунд, то есть на одни сутки, меньше правильного значения.
Как случилось, что создатели MPEG-4 неправильно посчитали разницу между двумя датами? Может, кто-то вручную считал високосные годы и ошибся? Не знаю. Так или иначе, неправильное значение из-за его присутствия в стандарте попало во множество библиотек для чтения и записи видеоформатов. Постепенно в последние годы правильное значение начинает его сменять; если вы поищете в гугле оба числа, то увидите несколько точных описаний проблемы в исходниках нескольких проектов: «Стандарт предлагает использовать 2 082 758 400, но правильное значение 2 082 844 800». В других проектах правильное значение стоит просто потому, что они сами посчитали, исходя из определений эпох, а не пользовались исходниками из стандарта.
Если в библиотеке, которая создает для вас MP4-файл, записано неправильное значение, то что произойдет, когда она захочет записать время «сейчас»? Она возьмет правильное число секунд по юниксу, добавит константу на сутки меньше, чем надо, и получит тем самым число секунд, согласно эпохе макинтоша, которое соответствует времени на сутки раньше. Я послал описание проблемы и решения разработчикам Ютьюба, и надеюсь, что вскоре этот баг исчезнет.
Все в этом мире взаимосвязано. Кривые руки авторов стандарта MPEG-4 приводят к конспиративным теориям в украинском конфликте. Так и живем.
Источник: habrahabr.ru/post/230571/
В видеоформате MP4 (стандарт MPEG-4) есть возможность записать «время создания» любого потока данных, с помощью специальной метки. Значение этой метки в стандарте: количество секунд, прошедших с 1 января 1904 года, или так называемое «время по эпохе макинтоша», потому что маки первыми стали использовать такой отсчет времени. Меж тем, в современных серверах намного проще иметь дело с «временем по эпохе Юникса», а именно количеством секунд, прошедших с 1 января 1970 года. В результате этого, во множестве программ, которые работают на Линуксе или других юниксовских операционных системах, есть кусок кода, который выглядит примерно так:
- получить «время сейчас по юниксу»;
- добавить разницу между временем по юниксу и временем по макинтошу — это некая константа;
- полученное «время сейчас по макинтошу» записать в файл MP4, который мы создаем.
Но есть маленькая крохотная незаметная проблемка. Часть стандарта MPEG-4 — исходники библиотек, которые умеют читать и писать mp4-файлы, так reference software на C++, которым все могут пользоваться, чтобы позаимствовать или сравнить со своим кодом. Полное название этой части стандарта: ISO/IEC 14496-5. Если вам интересно, вы можете скачать эту часть стандарта бесплатно с официального сайта. И если вы посмотрите на исходники, то увидите, что там используется другое значение этой константы, а именно 2 082 758 400. Это ровно на 86 400 секунд, то есть на одни сутки, меньше правильного значения.
Как случилось, что создатели MPEG-4 неправильно посчитали разницу между двумя датами? Может, кто-то вручную считал високосные годы и ошибся? Не знаю. Так или иначе, неправильное значение из-за его присутствия в стандарте попало во множество библиотек для чтения и записи видеоформатов. Постепенно в последние годы правильное значение начинает его сменять; если вы поищете в гугле оба числа, то увидите несколько точных описаний проблемы в исходниках нескольких проектов: «Стандарт предлагает использовать 2 082 758 400, но правильное значение 2 082 844 800». В других проектах правильное значение стоит просто потому, что они сами посчитали, исходя из определений эпох, а не пользовались исходниками из стандарта.
Если в библиотеке, которая создает для вас MP4-файл, записано неправильное значение, то что произойдет, когда она захочет записать время «сейчас»? Она возьмет правильное число секунд по юниксу, добавит константу на сутки меньше, чем надо, и получит тем самым число секунд, согласно эпохе макинтоша, которое соответствует времени на сутки раньше. Я послал описание проблемы и решения разработчикам Ютьюба, и надеюсь, что вскоре этот баг исчезнет.
Все в этом мире взаимосвязано. Кривые руки авторов стандарта MPEG-4 приводят к конспиративным теориям в украинском конфликте. Так и живем.
Источник: habrahabr.ru/post/230571/
Книга про Венеру
(ДИСКЛЕЙМЕР: Данный пост не является агитацией на сбор средств. Цель поста — вдохновить читателей на создание собственных краудсорсинговых проектов)

Читать дальше →
Можно надеяться, что в этом благородном, исполинском деле будет все более расширяться международное сотрудничество
ученых, проникнутых желанием трудиться на благо всего человечества, во имя мира и прогресса. К. Сергеев (псевдоним Сергея Королева)

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



