Допустим, вы разработчик, и вам от пользователя приходит строка 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
Con un Rescriptum ex Audientia SS.mi, Papa #LeoneXIV, a seguito dell'udienza concessa al Cardinale Segretario di Stato, Pietro Parolin, il 29 gennaio scorso, ha disposto l’approvazione dello Statuto emendato della Fondazione “Giovanni Paolo II per il Sahel”, allineando al quadro normativo vigente per le Persone Giuridiche strumentali della Curia Romana e alla normativa sul patrimonio della Sede Apostolica.
Della Fondazione, si legge nel Rescritto pubblicato oggi, fanno parte 9 paesi della regione del #Sahel: #BurkinaFaso, #CapoVerde, #Gambia, #GuineaBissau, #Mali, #Mauritania, #Niger, #Senegal e #Ciad. “L’obiettivo primario della Fondazione - recita lo Statuto - è promuovere la formazione di persone che si dedicano al servizio del proprio Paese e dei propri simili, senza discriminazioni, in uno spirito di sviluppo umano integrale e solidale, per combattere la desertificazione e le sue cause e per fornire assistenza alle vittime della siccità nei Paesi del Sahel”.
Di qui la priorità alla formazione di facilitatori ed esperti locali e al finanziamento di progetti nell’0 ambito dello sviluppo tecnico, socio-sanitario, socio-agricolo, socio-economico, sviluppo integrale e ambientale. Il patrimonio della Fondazione, per volere del Papa, è costituito dal ricavato delle collette organizzate in tutto il mondo cattolico a beneficio del Sahel.
#ProssimeElezioni🗓
Le elezioni che seguiremo prossimamente sono:
🇵🇪#Perù: #presidenziali e #parlamentari, il 12 aprile;
🇭🇺#Ungheria: parlamentari, il 12 aprile;
🇧🇬#Bulgaria: parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹#Italia: #comunali, il 24 e il 25 maggio;
🇨🇴#Colombia: presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno;
🇮🇸#Islanda: #referendum, il 29 agosto;
🇸🇪#Svezia: parlamentari, il 13 settembre.
@TuttoElezioni
#ProssimeElezioni🗓
❗️Calendario aggiornato
Le elezioni che seguiremo prossimamente sono:
🇨🇴#Colombia: #parlamentari, l'8 marzo;
🇩🇪#Germania: #statali nel #BadenWürttemberg, l'8 marzo;
🇦🇺#Australia: statali nell'#AustraliaMeridionale, il 21 marzo;
🇩🇪 Germania: statali nella #RenaniaPalatinato, il 22 marzo;
🇸🇮#Slovenia: parlamentari, il 22 marzo;
🇮🇹#Italia: #referendum, il 22 e il 23 marzo;
🇵🇪#Perù: #presidenziali e parlamentari, il 12 aprile;
🇭🇺#Ungheria: parlamentari, il 12 aprile;
🇧🇬#Bulgaria: parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹 Italia: #comunali, il 24 e il 25 maggio;
🇨🇴 Colombia: presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno.
@TuttoElezioni
#ProssimeElezioni🗓
Le elezioni che seguiremo prossimamente sono:
🇦🇺#Australia: #statali nell'#AustraliaMeridionale, il 21 marzo;
🇩🇪#Germania: statali nella #RenaniaPalatinato, il 22 marzo;
🇸🇮#Slovenia: #parlamentari, il 22 marzo;
🇮🇹#Italia: #referendum, il 22 e il 23 marzo;
🇵🇪#Perù: #presidenziali e parlamentari, il 12 aprile;
🇭🇺#Ungheria: parlamentari, il 12 aprile;
🇧🇬#Bulgaria: parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹 Italia: #comunali, il 24 e il 25 maggio;
🇨🇴#Colombia: presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno;
🇮🇸#Islanda: referendum, il 29 agosto;
🇸🇪#Svezia: parlamentari, il 13 settembre.
@TuttoElezioni
#ProssimeElezioni🗓
❗️Calendario aggiornato
Le elezioni che seguiremo prossimamente sono:
🇦🇺#Australia: #statali nell'#AustraliaMeridionale, il 21 marzo;
🇩🇪#Germania: statali nella #RenaniaPalatinato, il 22 marzo;
🇸🇮#Slovenia: #parlamentari, il 22 marzo;
🇮🇹#Italia: #referendum, il 22 e il 23 marzo;
🇩🇰#Danimarca: parlamentari, il 24 marzo;
🇵🇪#Perù: #presidenziali e parlamentari, il 12 aprile;
🇭🇺#Ungheria: parlamentari, il 12 aprile;
🇧🇬#Bulgaria: parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹 Italia: #comunali, il 24 e il 25 maggio;
🇨🇴#Colombia: presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno;
🇮🇸#Islanda: referendum, il 29 agosto;
🇸🇪#Svezia: parlamentari, il 13 settembre.
@TuttoElezioni
#ProssimeElezioni🗓
❗️Calendario aggiornato
Le elezioni che seguiremo prossimamente sono:
🇵🇪#Perù: #presidenziali e #parlamentari, il 12 aprile;
🇭🇺#Ungheria: parlamentari, il 12 aprile;
🇧🇬#Bulgaria: parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹#Italia: #comunali, il 24 e il 25 maggio;
🇨🇴#Colombia: presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno;
🇮🇸#Islanda: #referendum, il 29 agosto;
🇩🇪#Germania: #statali in #SassoniaAnhalt, il 6 settembre;
🇸🇪#Svezia: parlamentari, il 13 settembre;
🇩🇪 Germania: statali a #Berlino e nel #MeclemburgoPomeraniaAnteriore, il 20 settembre;
🇱🇻#Lettonia: parlamentari, il 3 ottobre;
🇧🇦#BosniaErzegovina: parlamentari e presidenziali, il 4 ottobre.
@TuttoElezioni
#ProssimeElezioni🗓
Le elezioni che seguiremo prossimamente sono:
🇧🇬#Bulgaria: #parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇪🇸#Spagna: #regionali in #Andalusia, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹#Italia: #comunali, il 24 e il 25 maggio;
🇨🇴#Colombia: #presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno;
🇮🇸#Islanda: #referendum, il 29 agosto;
🇭🇹#Haiti: presidenziali e parlamentari, il 30 agosto;
🇩🇪#Germania: #statali in #SassoniaAnhalt, il 6 settembre;
🇸🇪#Svezia: parlamentari, il 13 settembre;
🇩🇪 Germania: statali a #Berlino e nel #MeclemburgoPomeraniaAnteriore, il 20 settembre;
🇲🇦#Marocco: parlamentari, il 23 settembre;
🇱🇻#Lettonia: parlamentari, il 3 ottobre;
🇧🇦#BosniaErzegovina: parlamentari e presidenziali, il 4 ottobre;
🇧🇷#Brasile: presidenziali e parlamentari, il 4 ottobre;
🇺🇸#StatiUniti: parlamentari e statali, il 3 novembre;
🇳🇿#NuovaZelanda: parlamentari, il 7 novembre;
🇧🇬 Bulgaria: presidenziali, l'8 novembre;
🇨🇻 Capo Verde: presidenziali, il 15 novembre;
🇦🇺#Australia: statali nel #Victoria, il 28 novembre.
Sono segnate in grassetto le elezioni previste nel corso del mese di aprile.
@TuttoElezioni
#ProssimeElezioni🗓
❗️Calendario aggiornato
Le elezioni che seguiremo prossimamente sono:
🇵🇪#Perù: #presidenziali e #parlamentari, il 12 aprile;
🇭🇺#Ungheria: parlamentari, il 12 aprile;
🇧🇬#Bulgaria: parlamentari, il 19 aprile;
🇬🇧🏴#RegnoUnito: parlamentari in #Scozia, il 7 maggio;
🇬🇧🏴 Regno Unito: parlamentari in #Galles, il 7 maggio;
🇨🇻#CapoVerde: parlamentari, il 17 maggio;
🇪🇸#Spagna: #regionali in #Andalusia, il 17 maggio;
🇨🇾#Cipro: parlamentari, il 24 maggio;
🇮🇹#Italia: #comunali, il 24 e il 25 maggio;
🇨🇴#Colombia: presidenziali, il 31 maggio;
🇦🇲#Armenia: parlamentari, il 7 giugno;
🇮🇸#Islanda: #referendum, il 29 agosto;
🇭🇹#Haiti: presidenziali e parlamentari, il 30 agosto;
🇩🇪#Germania: #statali in #SassoniaAnhalt, il 6 settembre;
🇸🇪#Svezia: parlamentari, il 13 settembre;
🇩🇪 Germania: statali a #Berlino e nel #MeclemburgoPomeraniaAnteriore, il 20 settembre;
🇲🇦#Marocco: parlamentari, il 23 settembre;
🇱🇻#Lettonia: parlamentari, il 3 ottobre;
🇧🇦#BosniaErzegovina: parlamentari e presidenziali, il 4 ottobre;
🇧🇷#Brasile: presidenziali e parlamentari, il 4 ottobre;
🇳🇿#NuovaZelanda: parlamentari, il 7 novembre;
🇺🇸#StatiUniti: #parlamentari e #statali, il 3 novembre;
🇧🇬 Bulgaria: presidenziali, l'8 novembre;
🇨🇻 Capo Verde: presidenziali, il 15 novembre;
🇦🇺#Australia: statali nel #Victoria, il 28 novembre.
Sono segnate in grassetto le elezioni previste nel corso del mese di aprile.
@TuttoElezioni