Pull to refresh

Из-за конфликтов ливанских политиков база данных часовых поясов tz обновится в третий раз за неделю

Reading time4 min
Views3.1K

Шуточная карта часовых поясов Ливана, перерисованная по карте религиозного большинства в конкретном регионе страны. В реальности в стране один официальный часовой пояс. /r/MapPorn

В прошлый четверг, 23 марта, правительство Ливана распорядилось отложить переход на летнее время на несколько недель. Это произошло всего за двое суток до перевода часов. Тем не менее проект базы данных часовых поясов tz быстро отразил эти изменения.

С решением главы государства не согласились многие ливанцы, мелкие и крупные организации, а также политики. В понедельник заседание Совета министров Ливана постановило, что на летнее время переходить всё же нужно на этой неделе. В результате базу данных tz придётся обновить уже в третий раз за последние 7 дней.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments12

Sony VAIO TZ, многопортовый ультрапортатив 2007 года

Reading time13 min
Views13K
Он тонкий, он легкий, он производительный. Он очень дорогой, точнее был таким 13 лет назад. Sony VAIO TZ — очередной ноутбук в моей коллекции, купленный под конкретную задачу, но еще из-за желания разнообразить ассортимент портатива компании IBM. Компания Sony выпускала ноутбуки под брендом VAIO с 1996 по 2014 год. Их было много разных, но лучше всего запомнились именно компактные устройства, зачастую являвшиеся упражнением на тему «давайте сделаем максимально компактное устройство, даже если оно будет не очень удобным». Серия Sony VAIO TZ появилась в 2007 году, и на тот момент это был один из самых компактных ноутбуков на рынке. В категории «без фанатизма»: 11-дюймовый дисплей, процессор Core 2 Duo со сверхнизким энергопотреблением, вес чуть больше килограмма, пять часов автономной работы. И цена под три тысячи долларов. Это был такой Macbook из вселенной Windows, игрушка, доступная немногим.



В конце 2008 года концепция дорогого ультрапортатива всухую проигрывает нетбукам. Вес и габариты у них примерно такие же. Да, производительность как правило хуже, дисплеи отвратительные, но ведь и цена меньше чуть ли не в десять раз. Но это тогда. В 2020 году VAIO TZ — это интересное ретро: карбоновый корпус, необычный дизайн и совершенно нехарактерный для современных ноутбуков ассортимент интерфейсов. Серия TZ немного похожа на мой ThinkPad X301, но то более поздняя и более крупная модель. А тут в габаритах листа А4: два USB, Firewire, гигабитный Ethernet, модем, пишущий DVD-привод, ExpressCard, два слота под карты памяти, разъем для наушников, порт для док-станции наконец! Есть всё, как в Греции. Я купил два таких ноутбука, поэкспериментировал с родной Windows Vista и более-менее совместимой Windows XP, сравнил прозводительность с десктопами начала тысячелетия. Рассказываю, что получилось.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments25

Tzdata — глобальная база знаний о часовых поясах

Reading time6 min
Views39K
Если нам где-либо (например, в каких-то приложениях) требуется работать не только с универсальным временем UTC, но и с местным временем в различных точках Земли, то здесь встаёт вопрос о необходимости некой базы знаний о том, как вычисляется локальное время относительно UTC в различных регионах мира.

Многие Unix-like системы для хранения информации обо всех мировых часовых поясах используют базу tzdata (она же tz database, она же zoneinfo database, она же Olson database — в честь Артура Олсона, основателя этой базы знаний).

Впервые начал собирать эту базу Артур Дэвид Олсон (Arthur David Olson), позже к этому проекту подключились и другие участники. Сейчас же основным коммитером новой информации в базу tzdata является Пол Эггерт (Paul Eggert), а Артур Олсон сейчас занимается разработкой и поддержкой утилит для работы с локальным временем и данными о часовых поясах (пакет tzcode).

В базе tzdata содержится детальная информация обо всех часовых поясах во всех регионах мира:
— координатная привязка основных населённых пунктов, характеризующих часовой пояс;
— смещение локального времени в различных регионах относительно универсального времени UTC;
— указано, в каких регионах применяется летнее время (DST), насколько оно смещается относительно стандартного, указаны точные даты и время переключения на летнее время и обратно в различных регионах в различные периоды;
— информация о високосных секундах (leap seconds).
Читать дальше →
Total votes 74: ↑67 and ↓7+60
Comments12

Практика работы со временем в разных часовых поясах в unix-like системах

Reading time4 min
Views3.9K
Если ваше приложение зависит не только от локального времени, но и от его представлении в других часовых поясах, вы наверняка сталкивались со сложностью представления времени в разных временных зонах. Не сталкивались? Значит вы не портировали своё приложение в мир Unix.

Действительно, в ОС Windows для работы с временными зонами программисту предоставляется удобный набор специализированных функций WinAPI. Примером могут служить структура TIME_ZONE_INFORMATION и функция GetTimeZoneInformation к ней в придачу.

Но что делать, если вам необходимо знать смещение относительно UTC+0, правила перехода на «летнее время», учитывать при этом високосные годы с високосными секундами и прочую специфическую информацию для какого-нибудь региона, да всё это в unix-подобных операционных системах? Статья посвящена практике работы со всем этим барахлом на языке C/C++.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments1

Установка собственной базы временных зон на устройства с Junos

Reading time3 min
Views3.9K
В связи с ожидающим нас в скором времени событии: дне, точнее ночи, «не перехода на зимнее время», хочется рассказать про обновление базы временных зон на оборудовании компании Juniper Networks, Inc. исполняющем операционную систему Junos.

Сама процедура великолепно описана в документации представленной на сайте компании, в документе: "Setting a Custom Time Zone on Routers Running JUNOS Software". Я лишь расскажу о ней на родном языке и уточню отдельные детали.
Читать дальше →
Total votes 5: ↑3 and ↓2+1
Comments5

Изменение часовых зон в России, Белоруссии и на Украине

Reading time44 min
Views39K
Как вы, наверняка, уже слышали, осенью 2011 сразу несколько государств приняли решение об изменении порядка исчисления времени на своей территории, а также об отмене сезонного перехода на летнее время.
В списке этих государств: Россия, Белоруссия, Украина, частично признанные государства: Абхазия и Южная Осетия, а также непризнанное государство Приднестровье. Т.е. во всех часовых поясах этих стран теперь круглый год будет фиксированный сдвиг относительно UTC, без дополнительных сезонных сдвигов.
(Примечание: Украина сначала приняла решение о переходе на время UTC+3 без летнего времени, но потом отменила принятое ранее решение и пока вернулась к прежнему порядку исчисления времени с сезонными переводами часов. Подробности ниже.)

Server clockВ этой статье я опишу суть принятых изменений часовых поясов и опишу техническую сторону вопроса касательно IT-систем (корпоративной инфраструктуры, серверов, рабочих станций, сервисов, приложений и т.п.). Постараюсь ответить на ряд основных вопросов, возникающих в связи с этими изменениями:
— Какие IT-системы может затронуть изменение часовых поясов?
— Какие проблемы это может вызвать?
— Как подготовиться к этому, чтобы по возможности избежать проблем?

Полагаю, многим системным/прикладным администраторам, а также некоторым разработчикам приложений/сервисов, полезно будет ознакомиться с этим материалом. А потом предлагаю всем заинтересованным обсудить и дополнить эту информацию в комментариях.
Для начала немного общей информации...
Total votes 263: ↑254 and ↓9+245
Comments101

Сказка о потерянном московском времени, или в чем ошиблись ребята из Microsoft

Reading time3 min
Views54K


На днях я с сожалением обнаружил, что в семействе операционных систем Windows содержится неверная информация о московском времени. Примечательно, что ошибка до сих пор не исправлена, хотя просочилась в систему еще в 2011-ом году. Последствия ошибки будут показаны с помощью .NET, но это актуально для всех технологий, которые доверяют данным Windows о часовых поясах и смещениях времени.
Читать дальше →
Total votes 110: ↑97 and ↓13+84
Comments26

Обновление tzdata для России (системное и java в Ubuntu/Debian, а также в MySQL)

Reading time3 min
Views65K

Предисловие


Как многие помнят, в этом году был принят закон, в связи с которым поменялись часовые пояса в России с 26 октября 2014 г. Само собой, сразу после принятия закона я поставил в календарь напоминалку на начало октября «обязательно обновить tzdata». Каково же было моё удивление, когда я не обнаружил апдейтов tzdata в debian и ubuntu. Решил подождать еще немного, наткнулся на открытые баги в дистрибутивах (Ubuntu #1377813, #1371758, Debian #761267). Коллеги усиленно напоминали о необходимости апдейтов, но мейнтейнеры не реагировали. Чтобы не устроить себе аврал к концу месяца, решил собрать пакеты и проапдейтить вручную. Важно отметить, что информацию о зонах в некотором софте, например, в MySQL, потребуется обновить вручную. Далее последует короткий мануал.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments58

Кража закрытых видео YouTube по одному кадру

Reading time5 min
Views33K

В декабре 2019 года, спустя несколько месяцев после того, как я занялся хакингом по программе Google VRP, я обратил внимание на YouTube. Мне хотелось найти способ получать доступ к закрытым (Private) видео, которыми я не владею.

При загрузке видео на YouTube можно выбрать один из трёх параметров доступа. «Открытый» (Public) позволяет находить и просматривать видео любым пользователям, «Доступ по ссылке» (Unlisted) позволяет просматривать видео только пользователям, знающим ID видео (URL), «Ограниченный доступ» (Private) позволяет просматривать видео только вам или другим аккаунтам, которым дано на это разрешение.

Первым делом я загрузил видео на свой второй тестовый канал аккаунта YouTube и переключил параметры доступа видео на Private, чтобы его можно было использовать для тестирования. (Помните, что тестирование всегда нужно проводить на тех ресурсах/аккаунтах, которыми вы владеете!) Если я смогу найти способ получить доступ к видео с первого тестового аккаунта, то мы выявим наличие бага.

Я открыл YouTube под первым аккаунтом, проверил каждую функцию и нажал на каждую кнопку, которую смог найти. Каждый раз, когда я видел HTTP-запрос с указанием ID видео, я заменял его на тестовое видео с доступом Private, надеясь, что так утечёт какая-нибудь информация о нём, но успеха не добился. Похоже, что основной веб-сайт YouTube (по крайней мере, все его конечные точки, которые я протестировал) всегда проверяет, находится ли видео в состоянии Private, и когда пытается выполнить запрос к целевому закрытому видео, он всегда возвращает ошибки наподобие This video is private!.

Мне нужно найти другой способ.
Total votes 55: ↑46 and ↓9+55
Comments10

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Reading time8 min
Views84K

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Total votes 150: ↑147 and ↓3+186
Comments163

Блэкджек на LiveScript

Reading time6 min
Views9.3K
Вероятно, многим уже надоели заголовки типа «ХХХ в 30 строк», но я рискну написать ещё один пост. Дабы хоть как-то сгладить злость отдельных хабралюдей, я расскажу что в этом скрипте делает каждая строка.
image
Читать дальше →
Total votes 50: ↑23 and ↓27-4
Comments16

Фонетические алгоритмы

Reading time9 min
Views44K
Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,
Шворцинегира? Нет такого!
В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

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

В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.
Читать дальше →
Total votes 154: ↑153 and ↓1+152
Comments35

Поиски фундаментальных данных для акций через API Financial Modeling Prep

Reading time127 min
Views9.8K
Недавно мне понадобилось обработать экономические показатели для нескольких тысяч американских акций.

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

В качестве поставщика данных использовался сервис FinancialModelingPrep, который в 2019 году был бесплатен, но в 2020 году уже нет.



В статье разбираюсь в нюансах формирования запросов к базе данных сервиса. А ещё исследую глубину доступных финансовых отчетов компаний за прошлые годы.
API Financial Modeling Prep
Total votes 4: ↑4 and ↓0+4
Comments6

Java и время: часть первая

Reading time40 min
Views237K
Восемь лет назад я принимал участие в проектировании и разработке сервиса, который был должен обслуживать запросы пользователей со всех уголков земного шара и координировать их действия. Работая над проектом я понял, что очень часто многие важные аспекты работы со временем просто игнорируются. Иногда это действительно не очень критично: если сервис локален и им пользуются только на определенной территории, либо пользователи естественным образом разделены на почти не взаимодействующие между собой географические кластеры. Однако же, если сервис объединяет пользователей по всему миру, то без четкого понимания принципов работы со временем уже не обойтись. Представим сервис, в котором общие события (совещания например) начинаются в какое-то строго определенное время, а пользователи рассчитывают на это. Какое время им показывать, в какой момент их беспокоить уведомлениями, что такое день рождения и когда можно поздравить человека — в статье я попробую это осмыслить.



Статья не претендует на глубину и/или академичность. Это попытка систематизировать опыт и обратить внимание разработчиков на не очень очевидные аспекты.

Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments11

Сказка о лишнем и потерянном времени. По версии py3

Reading time6 min
Views3.9K

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

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments7

Работа с временными зонами в PHP

Reading time8 min
Views86K
Как только проект перестает быть завязан на ограниченное количество потребителей и растет география его применения, встает вопрос о применении временных зон. Когда я работал в одной известной интернет компании внедрение в работу временных зон (как в интерфейс отображения статистики, так и в программу анализа) было достаточно серьезным шагом.

Далее перевод :-)
Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments37

Работа с временными зонами в PHP

Reading time7 min
Views796
Как только проект перестает быть завязан на ограниченное количество потребителей и растет география его применения, встает вопрос о применении временных зон. Когда я работал в одной известной интернет компании внедрение в работу временных зон (как в интерфейс отображения статистики, так и в программу анализа) было достаточно серьезным шагом.

Далее перевод :-)
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments0

Тонкости R. Как минута час экономит

Reading time7 min
Views8.6K

Довольно часто enterprise задачи по обработке данных затрагивают данные, сопровождаемые временной меткой. В R такие метки, обычно хранятся как класс POSIXct. Выбор методов работы с таким типом данных по принципу аналогии может привести к большому разочарованию и убеждению о крайней медлительности R. Хотя если взглянуть на эту чуть более пристально, то оказывается, что дело не совсем в R, а в руках и голове.


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


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments5

R и работа со временем. Что за кулисами?

Reading time15 min
Views4.2K

Даты и время являются весьма непростыми объектами:


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

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


Совсем краткое резюме для смартфоночиталей: на больших объемах данных используем только POSIXct с дробными долями секунд. Будет хорошо, понятно, быстро.


Является продолжением серии предыдущих публикаций.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments3
1
23 ...