Как стать автором
Обновить

Комментарии 26

Из-за решения, принятого давным-давно, чтобы принести деньги одной компании, мой $клиент потратил деньги на оплату мне, чтобы я исправил баг, внесённый одной компанией случайно, а другая специально

Невероятный перевод.
Редакторы редактировали редактировали, да не выредактировали. «Другая» / «другой» исправил, спасибо. Если есть предложения, как лучше фразу построить (не только в этом месте) — напишите.
Разбейте фразу на несколько и перестройте ее более литературно. К примеру:
Я исправил баг, естественно за деньги клиента. Эти деньги клиенту пришлось заплатить потому, что в своё время две компании допустили ошибки. Одна компания приняла неправильное решение ради бабла. А другая просто ошиблась — со всеми случается.
Какая жесть!
А бинарники у Office это ещё то удовольствие…
Баг старше меня, вот это жесть :)
А в чем заключается упрощение Lotus при исчислении 1900го года как високосного?
Последние годы столетий, оканчивающиеся на два нуля, в трёх случаях из четырёх не являются високосными. Так, годы 1700, 1800 и 1900 не являются високосными, так как они кратны 100 и не кратны 400. Годы 1600 и 2000 — високосные, так как они кратны 400. Годы 2100, 2200 и 2300 — невисокосные.
© Википедия
Не нужно городить огород ради одного-единственного года, делящегося на 4, но при этом не високосного (даты до 1900го года и после 2100го Lotus-1-2-3 не поддерживал). То же самое упрощение, что и на Mac'е, только по другому реализованное: одни исключили даты до 1904го, другие — посчитали, что 1900й високосный и то и другое ведёт к одинаковому упрощению формул. Только несовместимому.
В чём, собственно, упрощение? Единожды написать функции для работы с датами (сложение, вычитание, дни недели и прочее), а затем использовать их не такая уж и хитрая затея. Почему на таком простом моменте сэкономили?
Единожды написать функции для работы с датами (сложение, вычитание, дни недели и прочее), а затем использовать их не такая уж и хитрая затея.
Да? А если уточнить, что мы работаем с IBM 5150, в базовой поставке которой всей памяти — 16KiB? Это под DOS, программы и прочее.

Правда на 16KiB Lotus 1-2-3 никогда не работал, но даже «роскошные» 192KiB дорогого комплекта, необходимого для запуска Lotus 1-2-3 (для PCjr была версия на картридже, так как в нём было всего лишь 128KiB) как бы не дают особо разбежаться. Вам в эти 192KiB ведь нужно не только код уместить, но и все данные из вашей таблицы. И потому хочется, чтобы кода было поменьше, а данных — побольше.

Почему на таком простом моменте сэкономили?
Ну дык из таких вот «мелочей» и складываются килобайты. Тут пара процедур, там ещё одна — и глядишь уже и 192KiB мало будет.
К тому же определение високосности по григорианскому календарю — это лишнее деление на 100, которое в отличие от деления на 4 не оптимизируется сдвигом. Целочисленное деление в x86 только относительно недавно оптимизировали (Core i7, AMD FX), а в те времена это могло стать дополнительным источником тормозов
Забыл добавить ссылку на Спольски:
www.joelonsoftware.com/items/2006/06/16.html

Там пишется, что разработчики Lotus просто проверяли последние два бита. Если нули, то год високосный.
До сих пор пожинаем плоды стандартов de facto. Lotus Software должны гордиться!
Microsoft'у тоже есть чем гордиться: завоевав рынок и получив возможность упростить формат он предпочёл вместо этого добавить VRML, X3D и прочее. В результате разобрать этот «стандартный» и «открытый» формат настолько сложен, что даже сам Microsoft не рискует писать кросс-платформенный код, делающий это (MS Office для Mac'а использует парсет от MS Office для Windows обвешанный изрядным количеством костылей).
Закрытые псевдостандарты, итог предсказуем.
Интересно, а в DeLorean чья прошивка сбрасывала дату на 1885 — яблочная или мелкомягкая?:)
Это специальная голливудская прошивка, которая сама подстраивается под ту дату, которай на данный момент выгодна режиссёру.
НЛО прилетело и опубликовало эту надпись здесь
Не хватает тэга Perl.
теперь хватает
Действительно интересная особенность.
Надо будет учитывать это в будущем.
MS Excel 2007, високосный 1900 год:
image
Спасибо за статью, было очень познавательно. Открыл для себя много нового в летоисчислении.
Интересно как ведёт себя OpenOffice/LibreOffice, там тоже скопировали это поведение?
Глянул сейчас. LibreOffice 3.5.7.2
За 28-м февраля 1900-го идёт 1-е марта 1900-го
зато 0 в libreoffice это 30.12.1899, а не 01.01.1900, видимо как раз для компенсации. бага в excel
«Событие дня! Причиной бага, которого исправляли 50 лет, стала точка с запятой после while(true)!»
Извините, не удержался :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории