Вход на сайт

МЕДИАМЕТРИКА

Облако тегов

Всё, что *нужно* знать о принципе «бритвы Оккама»

Аватар пользователя И-23

Разум оперирует не напрямую с объективной действительностью, но с её проекциями (или моделями). Отличающимися направленностью, детализацией, погрешностями описания и ресурсоёмкостью.

Иерархию взаимоотношений объекта познания с познающим субъектом можно описать следующим образом:
Сначала объект познания существует отдельно, а [потенциально] познающий субъект — отдельно.
Потом познающий субъект фиксирует и начинает наблюдать/описывать объект наблюдений.
Венчает же цепочку полное освоение объекта познания, подразумевающее возможность воспроизводства и изменения.

Но далеко не везде возможность наглядной поверки/демонстрации принципиально возможна. А в значительной части оставшегося множества необходимо учитывать ресурсоёмкость организации эксперимента. В результате чего бОльшая часть современного знания существует в идеальной форме. Со своими закономерностями и тенденциями. Одной из таких тенденций, воплощающей в первую очередь стремление к экономии ресурсов и вычислительных мощностей, является т.н. «принцип бритвы Оккама».

Поблагодарим камрада vadesi за вульгарную (простую и понятную для профана, но при этом достаточно наукоподобную и потому широко распространённую) формулировку принципа «бритвы Оккама»:

Принцип «бритвы Оккама» состоит в следующем: если некое явление может быть объяснено двумя способами: например, первым — через привлечение сущностей (терминов, факторов, фактов и проч.) А, В и С, либо вторым — через сущности А, В, С и D, — и при этом оба способа дают идентичный результат, то считать верным следует первое объяснение. Сущность D в этом примере — лишняя: и её привлечение избыточно.

Первым делом предлагаю насладиться нарушением постулируемого принципа самой формулировкой (ну не дорос пересказчик до уверенного применения рекурсии…) и сравнить с тем же принципом в формулировке Эйнштейна:

«Всё следует упрощать до тех пор, пока это возможно, но не более того».

После чего не забываем заценить уверенность, с которой утверждается совершенство достигнутого уровня наблюдения и отрицается множественность правильных решений (эмпирическая мудрость: «кратчайший путь — известный», даже если он, согласно цитированной вульгарной формулировке и «неверный»).
В качестве наглядной иллюстрации можно привести причину популярности Ubuntu: разработчик подумал за пользователя, освободил его от бремени выбора в подавляющем большинстве ситуаций, радикально сузив пространство доступных решений там, где навязывать однозначное решение нельзя.


Попробую проиллюстрировать на примерах. Далеко ходить лень, поэтому возьму сервер АШ.
БОльшая часть излагаемых фактов вполне доступна достаточно внимательному пользователю, что не мешает любителям фантазировать о квалификации оппонента на тему инсайда.

Пример первый

Как видно из статьи по вышеприведённой ссылке, сервер использует простую с точки с точки зрения логики реализации и потому широко распространённую матрёшку nginx → apache → mod_php.
Хотя достаточно очевидно, что использование переросшего нишу web-сервера (!) Индейца в качестве контейнера для модуля интерпретатора PHP с позиции догмата «бритвы Оккама» очевидно «лишнее».
Особенно с учётом того, что PHP вполне можно скрестить и непосредственно с nginx, без back-end'а в лице Индейца.
Интересующимся обобщениями тенденции рекомендую обратить внимание на упоминаемый ниже закон Парето.

Пример второй

Ещё веселее. Следуя традиции первого web-сервера разработчики движка АШ в составе дистрибутива распространяют примеры конфигурационных файлов того же Apache (и только его), без намёков на существование альтернативных реализаций (в настоящее время список именно web-серверов не ограничивается упомянутым nginx, даже если проигнорировать реверансы в сторону мелкомягкого поделия IIS).
С точки зрения Догмата: решение есть, простое (один пример, понятный массам в силу распространённости и приоритета), следовательно «истинное».
А как оно на самом деле, с учётом многомерности бытия? Сетевой интерфейс слушает (и получает запросы) nginx. Но проверку запросов на предмет необходимости перенаправления (например http → https) выполняет Apache (просто потому что у nginx'а другой формат конфигурационных файлов и ему этой задачи никто не ставил). После чего перенаправленный запрос снова должен пройти через nginx.
Налицо очевидное противоречие между применением догамата принципа к этапу разработки и применением егоже к практике эксплуатации. Но это построение, не смотря на объективность и наглядность, слишком сложное, а потому — ложное. И было бы смешно, если бы не было так грустно.

Симптомы можно было наблюдать в процессе перехода с протокола HTTP на протокол HTTPS.

Пример третий

В дополнение к истории сетевых библиотек важно отметить, что использование локального каталога — жест отчаяния и вариант последнего выбора.
Потому что в реальной сетевой библиотеке деятельность сообщества заключается не столько в добавлении нового, сколько в структурировании каталога (зачистка дублей текстов, авторов, добавление/исправление описаний и/или аннотаций и т.д. и т.п.). Но в базу локального каталогизатора попадают не только лишь все файлы. Не всё показывается, и не только лишь все операции в базе данных учитываются. Потому что это слишком сложно и поэтому «лишнее».

Перечисленные примеры дают достаточно оснований для констатации противоречия между высказываемой профессиональным варягом вульгарной формулировкой принципа бритвы Оккама с другим эмпирическим фактом (Закон Парето: 80% решения задачи требуют вложения 20% труда, оставшиеся 20% решения требуют 80% труда).


Что имеем в сухом остатке? Претендующая на адекватность формулировка принципа не только не обещает экономии ресурсов, но совсем даже наоборот.

Какие смыслы можно извлечь из вульгарной формулировки? Ординарный DoS. Потому что феномен юридической доказуемости способен утилизировать любое количество ресурсов с околонулевым результатом. Цель — запрет аргументации высших порядков (не хочу знать (напрягать извилины) → не существует).
Информационная безопасность — то, чего на белом свете вообще не должно быть; потому что она только усложняет жизнь всем, начиная с этапа разработки и далее везде. И фильтрация пакетов — тоже блажь и порождение больного воображения.

Позитивное содержание принципа можно воплотить в приведении ресурсоёмкости решения в соответствие с наличными возможностями.

Остаётся вопрос: что делать с любителями апеллировать к вульгарной формулировке принципа?
Мне видится необходимым и достаточным оказание помощи в практическом постижении закона Мерфи:

«Любая сложная проблема имеет простое, очевидное и неверное решение»

Или то же, но в переводе с эзопова языка:

«Попробуйте написать инструкцию в знакомой тебе области, по которой не знакомый с этой областью человек гарантированно получит правильный результат. Это длинно, муторно и бесполезно, т.к. всего не учтешь. Тем более когда представишь сколько это писанины, потом объяснений и уточнений. И вы предлагаете потратить столько времени и сил на левого, человека который не только не собирается ничего делать сообщества …, но даже сам ничего делать не хочет» © _SerEga_
Фонд поддержки авторов AfterShock

Комментарии

Аватар пользователя Nordicx86
Nordicx86(5 лет 10 месяцев)(09:36:36 / 21-06-2016)

"...инструкции то же надо уметь писать - СисАдмин со Стажем"

Комментарий администрации:  
*** Криптобес ***
Аватар пользователя И-23
И-23(2 года 2 месяца)(09:43:11 / 21-06-2016)

Угу.
Самое занимательной на данном этапе — должным образом отразить в инструкции нюансы, опущенные официальной документацией.

Аватар пользователя Nordicx86
Nordicx86(5 лет 10 месяцев)(09:45:21 / 21-06-2016)

Нафиг-нафиг - делите инструкции на Толковые комментарии для Нормальных профи и пошаговые алгоритмы для Бибизянок

Комментарий администрации:  
*** Криптобес ***
Аватар пользователя И-23
И-23(2 года 2 месяца)(09:59:48 / 21-06-2016)

Определение «Нормального профи» в студию!
Вы ведь сталкивались с настоящими профессионалами?

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

Аватар пользователя Nordicx86
Nordicx86(5 лет 10 месяцев)(10:16:23 / 21-06-2016)

умение "Читать" - именно читать, те видеть отдельные слова и складывать их в предложения и не тярять мысль при прочтении более чем 2 страниц формата А4 - к сожалению им  владеют процентов 20 людей впринципе.

собственно реально умеющий "читать" человек со временем чаще всего становится профи.

мастерство - не подразумевает професионализма - те Мастер может не уметь "читать" и "выполнять" инструкции в принципе - тк он реально итак знает как это все работает и инерционность мышления зачастую заставляет видеть в тексте то чего реально Там НЕТ - реальный опыт - причем легко повторяемый.

 

Комментарий администрации:  
*** Криптобес ***
Аватар пользователя И-23
И-23(2 года 2 месяца)(10:22:30 / 21-06-2016)

Вы совершенно зря натягиваете навык чтения на два этапа и пропускаете третий.

Реальная цепочка выглядит как:

навыки чтения → навыки *понимания* прочитанного → навыки практического применения понятого

И тем более зря Вы игнорируете тот факт, что «профессионализм» по нонешним изобильным временам сохранил единственный определяющий признак — гонорар. Ни качества, ни хотя бы минимально-достаточной квалификации он уже давно не гарантирует.

ЗЫ: К вопросу пиитета перед инструкциями: Вам показать *что* пишетЪ профессиональная типо «поддержка» тырпрайс-железяк?

Аватар пользователя Nordicx86
Nordicx86(5 лет 10 месяцев)(10:26:34 / 21-06-2016)

видел - люблю инструкции от порнослоников и их Атс

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

и переход от чтения к реально пониманию обычо это претензия на мастерство.

Комментарий администрации:  
*** Криптобес ***
Аватар пользователя Aijy01
Aijy01(5 лет 2 месяца)(14:32:03 / 21-06-2016)

Именно этим и приходится заниматься - многоуровневыми инструкциями. У меня аж 4 уровня вышло:

Инструкция пользователей

Инструкция продвинутых пользователей

Инструкция бизнес-заказчика и Инструкция постановщика задач (как бы 2 в одном)

+ активно лезу в уровень инструкций для кодеров, которые настройки внедряют :-) 

Аватар пользователя И-23
И-23(2 года 2 месяца)(11:28:07 / 22-06-2016)

Скромненько как получается.
Неужто разработчик (upstream) аки та королева — вне подозрений и образец совершенства?
Мой опыт прямо-таки вопиет об обратном: шаг в сторону от линии партии и… ужос-ужос!

Аватар пользователя Rashad_rus
Rashad_rus(5 лет 9 месяцев)(09:38:16 / 21-06-2016)

Думаю, что всё проще

Аватар пользователя Older
Older(3 года 5 месяцев)(09:49:17 / 21-06-2016)

Вообще Принцип Оккама это не аксиома, а презумпция. Т.е. рекомендация. Ну вот затеяли вы с коллегами спор "Является ли Иисус по природе своей ангелом?", а вам, еретику, значит, по горлу бритвой Оккама. Ну вот, как на картинке.

Аватар пользователя Дубровский
Дубровский(3 года 8 месяцев)(09:49:42 / 21-06-2016)

это правило действует только в ограниченной системе. потому не универсально. надо это всегда иметь ввиду при дискуссиях не в рамках ограниченности а при попытках расширения системы ( что часто происходит во времена перемен )

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

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

кстати называть избыточность каким то фетишем типа бритва там какая то, Оккама какая то тоже избыточно, достаточно слова "избыточность" 

Аватар пользователя Rashad_rus
Rashad_rus(5 лет 9 месяцев)(09:52:47 / 21-06-2016)

это правило действует только в ограниченной системе.

Уловили самую суть!

Аватар пользователя И-23
И-23(2 года 2 месяца)(10:00:38 / 21-06-2016)

Но даже эта формулировка не учитывает Традиции (воплощаемой в личном опыте).
Кратчайший путь — известный!

Аватар пользователя daryets
daryets(5 лет 11 месяцев)(10:54:33 / 21-06-2016)

С одним режущим инструментом всего множества не поять

Аватар пользователя alexsword
alexsword(6 лет 1 месяц)(10:59:39 / 21-06-2016)

Все гораздо проще, apache был рекомендован разработчиками drupal, ядра системы. Конфигурация apache + nginx была рекомендована для drupal-систем с повышенной нагрузкой, поэтому мы выбрали ее.  

Сейчас nginx "подрос" и, вроде бы, может справиться с задачей в одиночку.  Но уже работающий механизм без нужды трогать не хочется, не так много apache отжимает ресурсов, чтобы это было критическим вопросом высокого приоритета, тем более что эта конфигурация легко позволяет разнести apache+drupal на несколько физических серверов.

Аватар пользователя И-23
И-23(2 года 2 месяца)(11:25:28 / 21-06-2016)

Не совсем понимаю, каким образом простота относится к *примеру*.
Неоднократно сталкивался с ситуациями, когда разработчик рекомендует распространённое или известное ему решение. Что далеко не всегда соответствует условиям *конкретной* задачи.

Спасибо за напоминание о таком факторе, как инерция сложившейся технологической традиции.
Кстати, по моим наблюдениям, по крайней мере в некоторых из высоконагруженных проектах на базе CMS drupal в качестве альтернативы nginx пробовали и www-servers/varnish (в качестве наглядной иллюстрации частности (nginx) и обобщения уровня задачи (кэширование статической составляющей)).
Здесь же будет нелишним напомнить, что на достигнутом технологическом уровне узким местом всё чаще оказывается пропусканая способность интерфейсов. И здесь удлиннение цепочки можт проявиться нежелательным образом.

Аватар пользователя alexsword
alexsword(6 лет 1 месяц)(10:53:23 / 21-06-2016)

П.С.

Но проверку запросов на предмет необходимости перенаправления (например http → https) выполняет Apache (просто потому что у nginx'а другой формат конфигурационных файлов и ему этой задачи никто не ставил). После чего перенаправленный запрос снова должен пройти через nginx. 

Это, кстати, давно уже неправда.  С чего вы это взяли?

Аватар пользователя И-23
И-23(2 года 2 месяца)(11:10:11 / 21-06-2016)

Именно что «давно» (но не «в принципе») ☺
Не поленился проверить по ванильным конфигам (ЕМНИП 8.1.2). Ведут всё в том же направлении.

Аватар пользователя avex
avex(2 года 8 месяцев)(10:55:29 / 21-06-2016)

«Всё следует упрощать до тех пор, пока это возможно, но не более того».

Как говорится, найди лишнее. 

Лучше - "Все, что можно, упрости". В возможное и входят все ограничения по упрощению. Если упрощение лишнее, то уже и так не возможное.

Аватар пользователя groks
groks(1 год 9 месяцев)(12:02:13 / 21-06-2016)

Что-то потоком пошло философствование в точных науках.

Наиболее понравившаяся формулировка Бритвы. Если даны следствие и ряд причин, то наиболее вероятной причиной будет простейшая.

Аватар пользователя И-23
И-23(2 года 2 месяца)(12:43:25 / 21-06-2016)

Два месяца как (если пройтись по ссылкам)?
Просто цитированный… товарисч в строгом соответствии с Догматом не обременил себя оговорками не тему области применимости. Вот я и привожу примеры из наглядного.

Там же (по ссылке) на примере истории можно насладиться как стремлением к выводу из оборота «неправильных» воплощений устной традиции, так и просто взаимоисключающими параграфами (когда вопреки оценкам «настоящих историков» позапрошлого века один из наиболее опасных оппонентов догматов исторической «науки» объявляется «не имеющим отношения к истории»).

ЗЫ: Приведённую формулировку можно и нужно рассматривать с точки зрения теории игр.

Аватар пользователя Громозека
Громозека(1 год 7 месяцев)(15:23:22 / 21-06-2016)

Доведи идею (задачу) до маразма и она сама даст ключ к решению. © Или откроется в новом вИдении.

Аватар пользователя Ктулху
Ктулху(1 год 11 месяцев)(02:09:18 / 22-06-2016)

В разработке ПО бритвой Оккама является программист собственной персоной. И ему часто не хватает времени, чтобы взять бритву и пройтись по проекту отрефакторить и повыбрасывать мёртвый код. Но это совершенно не значит, что он не работает wink. К сожалению сейчас нет компиляторов, которые бы вырезали из связки пыхпых+апач+ngnix лишнее. Хотя когда собирается программа компилятор и/или линковщик вполне могут себе удалить лишнее при сборке загружаемых модулей. То есть если в каком-то условном исходном тексте условного пыхпыха есть процедуры A, B, C и D. И A, B и С зависят друг от друга, а на процедуру D нигде нет ссылок, то в скомпилированном условном пыхпыхе могут присутствовать только процедуры A, B и С. Бритва Компилятор и/или линковщик в зависимости от параметров запуска может отработать такой вариант автоматически. Почему? Потому что это будет наиболее краткий набор объяснений (инструкций) для процессора. То есть программа будет упрощена ровно до тех пор, пока это возможно, но не более того. Далее. Если по какой-то причине будут выкинуты одна или несколько процедур А, B и/или C, то программа не скомпилируется или не запустится или упадёт во время выполнения. То есть система построенная на недостаточном информационном базисе придёт к неверным выводам.

Ключевые слова для поиска дополнительной инфы: рефакторинг, оптимизирующий компилятор, удаление неиспользуемых символов.

По примерам. Если вы берёте систему без учёта действий программиста, то в результате получается некорректный вывод (примеры 1 и 2). В третьем примере не учитываются запросы большинства которому, обычно, не нравится копаться в помойке. Частный случай не может быть натянут на общий. Поэтому также некорректный вывод.

Аватар пользователя Ктулху
Ктулху(1 год 11 месяцев)(02:26:58 / 22-06-2016)

То есть бритва Оккама работает в две стороны:

  1. Усекает лишние сущности
  2. Создаёт недостающие сущности.
Аватар пользователя И-23
И-23(2 года 2 месяца)(10:01:12 / 22-06-2016)

Попытка *имитации* (!) искусственного интеллекта не только порождает сюрпризы, но как правило подразумевает явную халтуру на системном уровне.
Жаба тому примером.

Аватар пользователя И-23
И-23(2 года 2 месяца)(09:59:56 / 22-06-2016)

Вы не утруждаетесь различением задач и валите в одну кучу программирование и администрирование, что уже вполне характеризует Ваши утверждения о некорректности выводов.

По третьему пункту отдельно добавлю, что Вы спешите порадовать аудиторию экспертной оценкой без хотя бы минимального обременения знакомством с предметной областью.
Потому что в *реальной* практике, если забить болт на объединение, то помойка *внезапно* (сюрприз?) оказывается в локальной реплике, где пользователю приходится выбирать из кучи вроде бы одинаковых файлов правильный там, где в сетевой библиотеке висит одна правильная версия, а историю нужно копать отдельно.
Ну и натяжка истории о том, что общий случай не должен соответствовать частной реализации тоже звучит.

Аватар пользователя Ктулху
Ктулху(1 год 11 месяцев)(18:35:28 / 22-06-2016)

Неправильное администрирование, либо программирование, либо какие-то ещё задачи управления или организации вовсе не означают, что принцип бритвы где-то не работает. В реальном мире ведомым жабой лишние сущности (ЛС) могут оставаться в проектах, коллекциях, сборниках, организациях, государствах и пр. бесконечно долго, если они не требуют значительных средств для своего поддержания. Это всего лишь означают, что они  могут исчезнуть в любой момент. Однако если ресурсы на поддержание становятся ЛС значительными, то их усекают вплоть до ликвидации проекта, организации и т.д. Вы привели примеры в которых стоимость поддержания ЛС крайне мала. Именно поэтому они некорректны.

Аватар пользователя Ктулху
Ктулху(1 год 11 месяцев)(19:08:46 / 22-06-2016)

Уточню: в случае если стоимость поддержки ЛС стремиться к нулю, то затраты/работы на удаление этих ЛС сами по себе становятся ЛС

Аватар пользователя И-23
И-23(2 года 2 месяца)(10:38:12 / 23-06-2016)

Замечательная иллюстрация именно что Догмата разобранного принципа.
Администрирование включено в модель только после явного указания.
Посмотрим что будет при указании на несамодостаточность «программирования», которое от реального применения в норме отделяет даже не один, а два этапа.

Фактор инертности существующих систем (цитата про тырпрайс Вам явно не знакома) сводит к нулю ценность Вашего стремления полагать некорректность примеров.
Но таким образом у Вас есть шанс к постижению смысла главной задачи.

ЗЫ: Со стороны (!) было очень забавно наблюдать результаты усечения «лишних проектов» (*необходимость* которых не очевидна воспитанным в рамках Догмата принципа бритвы Оккама эффективноминетжиров) на примере следствий сокращения электриков.

ЗЗЫ: Также полезно посчитать ИНТЕГРАЛЬНЫЕ издержки отсутствия такой «ЛС», как централизованная система управления ПО.

Аватар пользователя Ктулху
Ктулху(1 год 11 месяцев)(14:22:25 / 23-06-2016)

Из текста не совсем понятно о чём идёт речь. Именно по этому в первом комментарии я и разбирал что-то, что как и оказалось не отвечало тому, что вы хотели сказать. Понял после упоминания жабы. Не нужно привлекать ЛС. smiley

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

Аватар пользователя И-23
И-23(2 года 2 месяца)(09:33:07 / 24-06-2016)

В этом весь современный ыксперт: *понимать* написанное, а тем паче — *поверять* понятое некогда, «прыгать надо», в смысле выдавать на гора заказчику красивые и соответствующиме ожиданиям (иначе есть риск того, что экспертиза останется неоплаченной) заключения.

Особенный вес утверждениям об истинности/ошибочности того либо иного примера из области информационных технологий придаёт неспособность эксперта за alias'ом «жаба» узнать избыточно популярный и активно пеаримый в последнее время язык программирования Java (с соответствующими средами разработки).
И тем интереснее было бы ознакомиться с оценкой данного направления с точки зрения критикуемого принципа бриты Оккама ☺

Аватар пользователя Ктулху
Ктулху(1 год 11 месяцев)(09:46:46 / 25-06-2016)

Тут всё просто: мусор на входе — мусор на выходе, что также следует из принципа бритвы. А язык просто инструмент. Пеар квадратнокрасноглазых меня интересует слабо.

ЗЫ. Если вы хотите искать объяснения и достраивать систему до совпадающей с реальном мире — вы ищете недостающие факты. Как-то: фирмами управляют манагеры, а не электрики. Нет — получаете расхождение ваших хотелок с реальным миром. Вы можете обвинять в этом: бритву Оккама, спортлото, президента, но это будут только ваши проблемы. Засим сливаюсь.

Аватар пользователя И-23
И-23(2 года 2 месяца)(09:12:05 / 27-06-2016)

Диагноз ясен.
Понятия эффективности и области применимости инструмента осознанию недоступны.
С естественным спутником в виде «доказательства» своей «правоты» навешиванием ярлычков.

Когда вы заняты архинасущной задачей подбора аргументов в пользу единственно истинной точки зрения, встреча с объективными закономерностями реального мира будет регулярно поставлять сюрпризы. Без хотя бы наблюдения причин которых вы очень скоро придёт к следованию древним религиозным системам.
В добрый путь.

Аватар пользователя И-23
И-23(2 года 2 месяца)(23:23:34 / 18-03-2017)

Некоторое время тому назад в комментариях встретилась прекрасная иллюстрация:

«Самолёт летает потому что его черти носят.
Закон Бернулли и прочая — излишние (по принципу бритвы Оккама) усложнения.»

☺☺☺

Аватар пользователя Ровлат
Ровлат(4 года 11 месяцев)(09:49:24 / 30-06-2017)

Именно из-за этого я настороженно отношусь к Бритве Оккама. С её помощью объяснение "потому что на то Воля Божья" является универсальным, а всякие научные умножения сущностей - отсекаются.

Лидеры обсуждений

за 4 часаза суткиза неделю

Лидеры просмотров

за неделюза месяцза год

СМИ

Загрузка...