Рубрика «time»

image

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

Интернет зависит от времени так, что малейшая ошибка ведет к масштабным проблемам: падению серверов, сбоям в DNS, зависанию приложений. Из-за проблем со временем системы зацикливаются и потребляют излишние ресурсы CPU.

Конечно, программисты знают, откуда берется время. UNIX-time, timestamp, datetime, tzdata, NTP и другие решения дают четкое ощущение контроля времени. Однако кому на самом деле время принадлежит, кто несет за него ответственность?

Это история о бесконечном поиске консенсуса, талантливых одиночках, работающих без зарплаты, крушении «Титаника», увлеченном слепом программисте и смелых решениях, ведущих к новым ошибкам. Это история про время.

Читать полностью »

Доброго времени суток. В этом посте я расскажу, как мне удалось заставить STM32F407VET6 измерять аналоговые сигналы в указанные моменты времени с помощью DMA.

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

Для упрощения и ограничения задачи условимся, что

  • мы знаем точные моменты времени, когда необходимо измерять сигнал;

  • из предыдущего пункта также ясно, сколько измерений должно быть произведено;

  • разница по времени между двумя последовательными измерениями может быть любой;

  • Читать полностью »

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

Проблемы со скоростью выполнения системных вызовов «gettimeofday» и «clock_gettime» в AWS EC2 - 1

Кадр из фильма «Матрица: Революция»

В этой статье мы подробно рассмотрим детали одной интересной находки: два часто используемых системных вызова (gettimeofday, clock_gettime) в AWS EC2 выполняются очень медленно.

В Linux реализован механизм по ускорению этих двух часто используемых системных вызовов, благодаря которому их код выполняется в пространстве пользователя, что позволяет избежать переключениям в контекст ядра. Это сделано с помощью предоставляемой ядром виртуальной общей библиотеки (virtual shared library), которая отображается в адресное пространство всех запущенных программ.

Два вышеназванных системных вызова не могут использовать vDSO (virtual Dynamic Shared Object) в AWS EC2, поскольку виртуализированный источник временных меток (virtualized clock source) в xen (и некоторых конфигурациях kvm) не поддерживает получение информации о времени через vDSO.

Обойти эту проблему не получится. Можно поменять источник информации о времени на tsc, но это небезопасно. Далее мы рассмотрим вопрос более подробно и проведем сравнительное тестирование с помощью microbenchmark.

Читать полностью »

При разработке очередного бота для группы в Telegram у меня возникла необходимость испытать его при различных значениях системного времени. Этот бот в конце каждого дня отправляет (или, в зависимости от ряда условий, не отправляет) сообщение в чат и производит манипуляции с некоторыми предыдущими своими сообщениями (или, опять же, не производит).

Менять системное время глобально ой, как не хотелось. Муторно, плюс у меня в ней столько всего понаставлено, не дай Б-г что-то заглючит (вряд ли, но мало ли). Думал запустить VirtualBox, но уж больно лень было ставить «чистую» Убунту, расшаривать папки, и т. д., тем более что этот вариант жрёт, как троглодит серьёзно потребляет машинные ресурсы.

Но буквально недавно я начал ковырять Docker. «У него просто обязан быть механизм контроля системного времени внутри контейнера», — подумал я. Рассмотрим, что же в результате вышло.

Читать полностью »

Давайте начнём с простой задачки — вывести локализованную дату: там должен быть день, полное название месяца на языке локали и полный год. В наше время это действительно очень просто. В PHP есть своё i18n-расширение intl, которое входит в ядро с версии 5.3. И в этом intl есть класс IntlDateFormatter, у которого в свою очередь предопределено несколько форматов. Используем его LONG формат.

<?php

foreach (['en_US', 'ru_RU', 'es_ES', 'fa_IR'] as $locale) {
    $formatter = new IntlDateFormatter(
        $locale, 
        IntlDateFormatter::LONG, 
        IntlDateFormatter::NONE, 
        'Europe/Moscow'
    );
    echo $formatter->format(1455111783), PHP_EOL;
}

Результат:

February 10, 2016
10 февраля 2016 г.
10 de febrero de 2016
۱۰ ﻑﻭﺭیﻩٔ ۲۰۱۶ ﻡ. // вот тут вообще-то RTL-текст, но я хз как это правильно оформить

Пока неплохо. А теперь давайте слегка изменим условия: «вывести локализованную дату: там должен быть день и полное название месяца на языке локали». То есть, мы не хотим отображать год.
Читать полностью »

Очередным поводом для обсуждения перспектив «умных» часов стали результаты сбора средств в поддержку новой модели – Pebble Time: за час удалось собрать $2 млн на Kickstarter. Неужели это направление настолько перспективно, что взлетает даже краудфандинговый стартап? Или это целиком и полностью заслуга Pebble?Читать полностью »

В 2009 году СМИ писали о планах NASA и ESA относительно первой космической лодки – плавучее судно, которое бы занялось исследованием озер одного из спутников Сатурна. Но в контексте приоритетности проект проиграл миссии на Юпитер. Через некоторое время NASA снова подняли эту тему в 2012 году. После рассмотрения 28 проектов в финал вышли три: зонд на Марс в рамках миссии Insight, аппарат посадки на комету Comet Hopper и космическая лодка под названием Titan Marine Explorer (TiME). И вновь NASA сделало выбор не в пользу TiME, отдав предпочтение зонду на Марс. В данный момент NASA занимаются сбором проектов для Discovery Program и все с нетерпением ждут, попадет ли туда TiME.

TiME — космическая субмарина
Читать полностью »

Хакеры ради смеха накрутили голоса в пользу Майли Сайрус на голосовании «Человек года» журнала Time

Вчера на сайте журнала Time началось голосование за звание «Человека года». Звание может получить тот, кто за минувший год своими поступками больше всех повлиял на человечество.

В первые сутки голосования казалось, что победу без проблем одержит Эдвард Сноуден. Количество поданных за него голосов в десять раз превышало количество голосов ближайшего конкурента. Однако, ночью с 26 на 27 ноября ситуация кардинально изменилась. На первое место вышла бывшая звезда детского телевидения DisneyTV, скандальная певица Майли Сайрус.

Сразу появились подозрения, что дело нечисто. Теперь ситуация начинает проясняться.
Читать полностью »

На сайте Time началось голосование за «Человека года». Поддержать Эдварда Сноудена можно здесь. Голосование продлится до 4 декабря, победителя объявят 11 декабря.

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

Эдвард Сноуден лидирует в голосовании на «Человека года» журнала Time

К сожалению, это отнюдь не гарантирует победу: пример 2010 года показывает, что редакция журнала способна на странные поступки: Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js