Telegram Group & Telegram Channel
🩼 "Временные" костыли...

Нет ничего более постоянного, чем временное решение. Любой ИТ специалист хоть раз лепил костыль на скорую руку - потом перепишем, потом сделаем нормально. Но "потом" обычно не наступает, и в итоге времянка живёт в продакшене годами, переживает релизы и смену команд, а иногда становится частью продукта.

В 90-е многие приложения определяли версию ОС предельно примитивно: например, искали в строке "9" и считали, что перед ними Windows 95 или 98. Соответственно, если бы Microsoft выпустила "Windows 9", такие программы легко приняли бы её за Windows 95/98, и последствия предсказать было бы сложно.

Microsoft всегда трепетно относилась к обратной совместимости, поэтому версия про "костыльный" код звучала правдоподобно. Официально в компании объясняли пропуск "девятки" маркетингом и желанием подчеркнуть разрыв поколений. Но факты подтверждали миф: в открытых репозиториях реально находили куски кода на Java, где проверка шла именно по названию ОС, а не по номеру версии. То есть такие костыли действительно существовали. Ирония в том, что из-за них у нас нет Windows 9, а "десятка" стала новой точкой отсчёта для всей планеты.

Другой из классических примеров "вечного костыля" - история с високосным 1900 годом в Microsoft Excel. Если ввести в таблицу дату 29 февраля 1900-го, программа примет её как корректную, хотя в календаре такого дня никогда не существовало (если что, 1900-й год не был високосным).

И это не случайный баг, а вполне осознанное решение разработчиков. Дело в совместимости с легендарным табличным процессором Lotus 1-2-3. Когда-то его создатели решили считать 1900-й високосным, чтобы не усложнять расчёт дат. Microsoft, создавая Excel, пошла на хитрость - скопировала логику Lotus вместе с ошибками. Так Excel стал считать 1900 год високосным, чтобы пользователи без проблем импортировали таблицы из Lotus, даже если даты там изначально были неправильными.

Разумеется, со временем костыль обернулся проблемами. Формально в Excel появилось смещение. Microsoft знает об этом и прямо говорит, что исправлять баг слишком дорого. Любая попытка "починить" приведёт к тому, что миллионы старых файлов окажутся сдвинутыми на один день, формулы перестанут работать, а совместимость разрушится.

В итоге компания оставила всё как есть. Пострадала только одна функция - вычисление дня недели для дат до 1 марта 1900 года. Но такие экзотические значения почти никто не использует, поэтому аномалия живёт по сей день, а фантомный 29 февраля 1900-го превратился в мем. Такие вот костыли...

#Разное
5👍46🔥1712😁6💯5422😱11



group-telegram.com/it_secur/3852
Create:
Last Update:

🩼 "Временные" костыли...

Нет ничего более постоянного, чем временное решение. Любой ИТ специалист хоть раз лепил костыль на скорую руку - потом перепишем, потом сделаем нормально. Но "потом" обычно не наступает, и в итоге времянка живёт в продакшене годами, переживает релизы и смену команд, а иногда становится частью продукта.

В 90-е многие приложения определяли версию ОС предельно примитивно: например, искали в строке "9" и считали, что перед ними Windows 95 или 98. Соответственно, если бы Microsoft выпустила "Windows 9", такие программы легко приняли бы её за Windows 95/98, и последствия предсказать было бы сложно.

Microsoft всегда трепетно относилась к обратной совместимости, поэтому версия про "костыльный" код звучала правдоподобно. Официально в компании объясняли пропуск "девятки" маркетингом и желанием подчеркнуть разрыв поколений. Но факты подтверждали миф: в открытых репозиториях реально находили куски кода на Java, где проверка шла именно по названию ОС, а не по номеру версии. То есть такие костыли действительно существовали. Ирония в том, что из-за них у нас нет Windows 9, а "десятка" стала новой точкой отсчёта для всей планеты.

Другой из классических примеров "вечного костыля" - история с високосным 1900 годом в Microsoft Excel. Если ввести в таблицу дату 29 февраля 1900-го, программа примет её как корректную, хотя в календаре такого дня никогда не существовало (если что, 1900-й год не был високосным).

И это не случайный баг, а вполне осознанное решение разработчиков. Дело в совместимости с легендарным табличным процессором Lotus 1-2-3. Когда-то его создатели решили считать 1900-й високосным, чтобы не усложнять расчёт дат. Microsoft, создавая Excel, пошла на хитрость - скопировала логику Lotus вместе с ошибками. Так Excel стал считать 1900 год високосным, чтобы пользователи без проблем импортировали таблицы из Lotus, даже если даты там изначально были неправильными.

Разумеется, со временем костыль обернулся проблемами. Формально в Excel появилось смещение. Microsoft знает об этом и прямо говорит, что исправлять баг слишком дорого. Любая попытка "починить" приведёт к тому, что миллионы старых файлов окажутся сдвинутыми на один день, формулы перестанут работать, а совместимость разрушится.

В итоге компания оставила всё как есть. Пострадала только одна функция - вычисление дня недели для дат до 1 марта 1900 года. Но такие экзотические значения почти никто не использует, поэтому аномалия живёт по сей день, а фантомный 29 февраля 1900-го превратился в мем. Такие вот костыли...

#Разное

BY infosec




Share with your friend now:
group-telegram.com/it_secur/3852

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Individual messages can be fully encrypted. But the user has to turn on that function. It's not automatic, as it is on Signal and WhatsApp. In 2018, Russia banned Telegram although it reversed the prohibition two years later. In December 2021, Sebi officials had conducted a search and seizure operation at the premises of certain persons carrying out similar manipulative activities through Telegram channels. Perpetrators of such fraud use various marketing techniques to attract subscribers on their social media channels. Apparently upbeat developments in Russia's discussions with Ukraine helped at least temporarily send investors back into risk assets. Russian President Vladimir Putin said during a meeting with his Belarusian counterpart Alexander Lukashenko that there were "certain positive developments" occurring in the talks with Ukraine, according to a transcript of their meeting. Putin added that discussions were happening "almost on a daily basis."
from us


Telegram infosec
FROM American