Литмир - Электронная Библиотека
ЛитМир: бестселлеры месяца
Содержание  
A
A

– А для тех, кто не понял, поясню: то есть какие-то умные часовые мастера сделали механизм, в котором что-то и как-то работало, а дальше сотни физиков, химиков, астрономов, астрологов, гомеопатов, знахарей и других замечательных людей пытались придумать хоть сколько-нибудь вменяемое определение того, что используют все люди на планетке более сотни лет. И не придумали ничего лучше и проще, чем «1/31 556 925,9747 доля» и «в точности 9 192 631 770» при температуре 0 К. Да, я теперь тоже открыл статью «Секунда».

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

– Как вы понимаете, месяцы и недели были придуманы просто так. Так же как и количество дней в них. Тут пусть будет 28, а тут пусть целых 31. Антон, продолжай, а я сейчас зарисую.

– 1 февраля 2003-го я встретил в школе, одиннадцатый класс. Помню, сколько радости меня переполняло, когда я выводил в тетради «01.02.03». Вру, конечно, ничего я не помню. Календарь говорит, что это была суббота. Я даже не смог вспомнить, учились ли мы по субботам в одиннадцатом классе. Но дату помню – красивая была дата. А как на эту дату отреагирует машина? Машина наверняка попросит дать ей формат даты28, ибо вариаций того, что хотел сказать автор, машина знает множество. 1 февраля 2003, 2 января 2003, 2 марта 2001, 3 февраля 2001 – все это и кое-что еще. И то в случае, если машина не скажет «еггог ай-ай-ай». А она скажет.

– Это все в том числе потому, что в разных странах разные форматы – это тоже норма, к сожалению. Что в России – 1 февраля 2003, то в США будет 2 января 2003, а в Китае – 3 февраля 2001.

– Да, ведь машинную логику закладывают люди. И это ведь еще стоит порадоваться, что человечество ушло от следующих календарей: майя, Нуми Помпилия, самватский, лунно-солнечный, бахаи, румийский, хараппский, Армелина и от сотен других.

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

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

Пузыри. Айти для детей и их родителей - img_41

– И вот, казалось бы, один григорианский календарь у всех, – продолжил Антон. – Сутки можно измерить по солнцу. Секунду каждый желающий может аж двумя способами отмерить в домашних условиях: и через атом цезия, и через скорость света. Ну вот чего еще не хватает? Но проблемы продолжают возникать даже сейчас, особенно в информационных технологиях.

– А следствием являются проблемы у их пользователей.

– В каждом из существующих языков программирования есть несколько, а то и несколько десятков, типов данных, связанных с хранением даты и времени. Есть десятки функций, которые их как-то преобразовывают. Форматов ввода и вывода даты и времени (маска, шаблон) десятки, где-то они указываются неявно, где-то явно преобразовываются, и вот 1 февраля превратилось во 2 января. Сколько людей проспало работу, потому что будильник сам не перевелся на летнее время? А сколько проспало из-за того, что перевело часы на зимнее время, а потом они еще раз перевелись автоматически? Сколько людей, покупая билеты или назначая встречу, не учли часовые пояса? Или учли, но как-то не так. Или попросили бездушную и безошибочную машину сказать точное время в другой части планеты…

– А бездушная и безошибочная машина бездушно не ошиблась, просто тоже не учла зимнее/летнее время, отличие времен на устройстве от текущего часового пояса и много чего еще. Либо учла несколько раз.

– Да-да. Несколько лет назад лично наблюдал, как мои коллеги делали мобильные приложения для крупной конференции, которая должна была состояться во Владивостоке. Суть была такова: часть разработчиков находится в Москве, часть в Астрахани (это уже другой пояс), мероприятие во Владивостоке (третий). Гости мероприятия едут из разных стран. Приложения работают на двух-трех операционных системах разных версий. У конкретного пользователя может быть вообще любой часовой пояс. При этом часовой пояс может быть установлен один, а время выбрано другое. А еще между непосредственно разработкой и мероприятием должно было время то ли переехать с летнего на зимнее, то ли это был первый год, когда, наоборот, не должно было. И при этом при всем пользователь должен был видеть актуальную информацию о времени проведения конкретных мероприятий конференции относительно времени на устройстве. Наблюдал за этими страданиями не одну ночь.

– Нам пора закругляться.

Пузыри. Айти для детей и их родителей - img_42

– Спасибо, Борис Николаевич. Напоследок, вернусь к форматам дат. Сам неоднократно сталкивался с тем, что крутое западное ПО говорит, что единственный католический вариант вывода даты – «мм. дд. гггг», а иногда «м.д.гггг», а вы со своими «дд. мм. гггг» можете идти и построить CRM/BI на базе…

– На базе «2Ж», Антон. У нас это называется так.

– Хм, окей. Нет, ну некоторые, конечно, пытались сделать это на 2Ж. Но большинство использовало то, что есть. Однако с датой надо было что-то делать.

– Тем, кто за жизнь не успел достаточно пострадать над форматами дат, поясни, пожалуйста, чем отличается «мм. дд. гггг» от «м.д.гггг».

– В двухзначных значениях месяца и дня разницы нет, а вот третий день восьмого месяца будет записан в первом случае как «08.03», а во втором как «8.3». В итоге, чтобы это католическое написание преобразовать в православное «дд. мм. гггг», в далекие годы нужно было перевести дату в текст, поискать в нем точки или другие разделители и запомнить их положение. После чего относительно положения понять, сколько символов (1 или 2) занимает значение, после чего поменять их местами и хранить дальше в виде текста. Этот топорный механизм работал почти всегда. Были и более изящные, но их реализация была не всегда доступна. Сейчас все это атавизм. Даже большие западные католики поняли, что нужно дать православным возможность выводить дату в православном режиме.

– Но если что-то является атавизмом, это не значит, что это что-то не продолжает использоваться повсеместно… На этом все, до следующего вторника. Антон, спасибо.

Пузырь безопасности

– Борис Николаевич, к вашему Антону претензий нет. Даты – это очень и очень важно. Но обозначенную «Проблему-2000» вы так и не раскрыли в ходе лекции.

– Михаил Сергеевич, извиняюсь, память старая… Запамятовал. В следующий вторник обязательно расскажу.

– Что кроме нее?

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

– Специалиста по ИБ?

– Специалиста по общению с ИБ.

– Если бы я был японцем, я бы сказал:

Каждый диалог

С вами сердце скорбью

Наполняет мне.

Лекция от 29.10.2019

– Всем ку! Мы в прошлый раз разглагольствовали целую лекцию про даты, а «Проблема-2000» опять мимо. Давайте быстренько. На дворе рубеж третьего десятилетия двадцать первого века. Те, кто писал программы в начале девяностых прошлого века, особо не думали о проблемах календарей. Сотрудники передовых многомиллиардных корпораций не думали о том, что их детища проживут пять-десять лет и перешагнут рубеж тысячелетия. Что уж говорить о сотрудниках более мелких продуктовых компаний. Хотя официально рубеж вроде бы перешагнулся с 00 на 01, а не с 99 на 00, но именно смена с 99 на 00 грозила всему миру. Из-за этого отвратительного мученичества с датами, а также еще и из-за крайне невысокой производительности компьютеров того времени считать биты было необходимостью. На один символ два бита. Еще два бита на каждый разделитель. А выкидывание двух лишних символов из каждой даты («19») позволяло сэкономить четыре бита и чуть-чуть сократить трудоемкость операций над ними. Сделали и забыли, другие тоже сделали и забыли, третьи… Четвертые поставили ПО и решили больше не обновляться, пятые поставили, но больше обновлений не прилетало от шестых, потому что они закрылись и разбежались. И вот в какой-то момент времени оказывается, что компьютеров на планете десятки миллионов, на каждом десятки программ, компьютеры замешаны уже практически во всех сегментах человеческого бизнеса… И большая часть экземпляров используемого ПО, то есть сотни миллионов инсталляций, считает, что после 1999 года идет 1900-й. Точнее, после 99 идет 100, что могло запросто считаться и как 19100.

20
{"b":"833175","o":1}
ЛитМир: бестселлеры месяца