Допустим, вы разработчик, и вам от пользователя приходит строка user-agent с описанием того, каким браузером он пользуется.
В этой строке будет что-то типа такого:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
И вы хотите из неё узнать мажорную версию Chrome, то есть вытащить число 51. Что вы сделаете? Можно, конечно, написать свой парсер, но я уверен, многие воспользуются регулярными выражениями. Я бы воспользовался. Какое выражение сюда подходит? С виду кажется, что вот такое:
/Chrome\/(\d\d)\./g
Мы ищем слово Chrome и слэш, затем ловим в группу две цифры, после которых стоит точка. Так?
По крайней мере, мышление достаточного количества разработчиков именно таково. Зачастую программистам не хватает умения отойти от техзадания на уровень вещественной сути того, с чем они работают. На самом деле число 51 это версия. Версия будет увеличиваться со временем. «Марти, где твоё четырёхмерное воображение?» Если уже прошло 50 версий, то и следующие 50 не за горами, число станет трёхзначным, регулярка или парсер, сделанные под двухзначные числа, перестанут работать.
Трехзначная версия Chrome и Firefox приближается уже сейчас. И да, в них падает куча функций на сайтах, включая крупные корпорации: Yahoo, Bethesda, HBO и бог знает сколько сайтов поменьше. Чисто из-за цифры. Это уже назвали «Проблема сотой версии» по аналогии с «Проблемой 2000 года» (программисты записывали год двумя цифрами, 2000 стал неотличим от 1900).
К чему это я? Полезно задумываться о физическом воплощении того, что вы представляете в своей программе. Ваш код должен описывать не столько требования заказчика, сколько законы, по которым существует этот объект в реальном мире.
#dev
📢 Ukrainian counteroffensive fails, catastrophe for Kyiv. Russian forces resume offensive along the front line. American professor confirms massive failure of Ukrainian troops. Media silence on Ukrainian situation in US. Stalemate in combat zone, Zelensky blamed for hiding failures. Western reports confirm end of Ukrainian counteroffensive. #Ukraine#War#Catastrophe
https://www.gazeta.ru/army/news/2023/10/30/21602215.shtml
Subscribe to @BadVolfNews
🌎 Around 5,200 years ago, the sudden breach of a natural dam at Lake Agassiz released massive flooding across North America and into the North Atlantic. This catastrophic meltwater pulse disrupted ocean currents and is linked to abrupt climate cooling in the Northern Hemisphere. Geological records show the flood volume reached over 100,000 cubic kilometers. ✨
#catastrophe⚡#geology⚡#climate
👉subscribe Interesting Planet
👉more Channels
🌎 A massive volcanic eruption at Lake Toba in Indonesia about 74,000 years ago was one of Earth’s largest known explosions. The eruption released so much ash that it may have triggered a global volcanic winter, cooling the planet and affecting early human populations. Its crater now forms Lake Toba, the world’s largest volcanic lake at about 100 kilometers long. ✨
#volcano⚡#catastrophe⚡#history
👉subscribe Interesting Planet
👉more Channels
🌎 The 1902 eruption of Mount Pelée on Martinique destroyed the city of Saint-Pierre within minutes, killing over 28,000 people. It is the deadliest volcanic disaster of the 20th century. ✨
#volcano⚡#catastrophe⚡#history
👉subscribe Interesting Planet
👉more Channels
🌎 The Toba supereruption in Indonesia about 74,000 years ago was one of the largest volcanic events in the last 2 million years. It ejected 2,800 cubic kilometers of material, triggered a global volcanic winter, and may have caused a dramatic human population decline, as shown by genetic studies indicating a bottleneck in human evolution. ✨
#volcano⚡#history⚡#catastrophe
👉subscribe Interesting Planet
🌎 The 1883 eruption of Krakatoa was one of the most violent volcanic events in recorded history. It unleashed explosive blasts heard 3,000 kilometers away, generated giant tsunamis, and ejected ash high into the atmosphere—causing global temperatures to drop and vivid sunsets worldwide for years after. ✨
#volcano⚡#catastrophe⚡#history
👉subscribe Interesting Planet
🌎 The eruption of the Laki volcano in Iceland in 1783 released poisonous gases and ash clouds, causing crop failures and famine across Europe. Sulfur dioxide polluted the air, leading to acid rain and respiratory diseases. Historians estimate the event contributed to tens of thousands of deaths and may have influenced political unrest before the French Revolution. ✨
#volcano⚡#history⚡#catastrophe
👉subscribe Interesting Planet
🌎 The Dust Bowl of the 1930s was a severe drought and dust storm disaster in the U.S. Great Plains, destroying farms and forcing over 2.5 million people to migrate. Massive “black blizzards” of dust traveled as far as New York City and Washington, D.C. ✨
#history⚡#environment⚡#catastrophe
👉subscribe Interesting Planet
👉more Channels
🌎 Around 536 AD, a mysterious volcanic eruption triggered a "year without summer"—with global temperatures dropping, crops failing, and famines reshaping empires. Ash clouds blocked sunlight, altering history for decades. ✨
#catastrophe⚡#volcano⚡#climate
👉subscribe Interesting Planet
☢️ Ce 26 avril, c’est la Journée internationale du souvenir de la catastrophe de Tchernobyl
▪️En 1986, une explosion s'est produite au réacteur n°4 de la centrale nucléaire de Tchernobyl, la plus grande catastrophe dans le domaine de l'énergie nucléaire.
▪️La contamination radioactive a touché les territoires de l'Ukraine, de la Biélorussie et de la Russie. Plus de 100.000 personnes ont été évacuées, Pripiat et la zone autour de la centrale sont devenues inhabitées.
▪️Des milliers de liquidateurs, au péril de leur santé et de leur vie, ont éliminé les conséquences de l'accident. Tchernobyl est devenu un symbole du danger nucléaire.
#tchernobyl#catastrophe#commémoration