Новый год только вчера вступил в свои права, а у нас уже есть звонкий публичный скандал хоккейно-международного уровня. И в очередной раз приходится с грустью констатировать: мы готовы верить кому угодно, но не своим соотечественникам. Впрочем, обо всем по порядку.
Вечером 29 декабря был официально отменен молодежный Чемпионат мира по хоккею. Причина — коронавирус. Сборные, не доигравшие групповой этап, вынуждены были отправиться домой.
30 декабря Федерация хоккея России сообщила:
«Команда вылетит домой сегодня вечером по канадскому времени и прилетит в Москву 1 января. Встречу в аэропорту проводить запрещено по соображениям эпидемиологической безопасности, так как хоккеисты были в контакте с заболевшими».
Позже стало известно, что двум российским хоккеистам придется остаться в Канаде, где проходил турнир — Матвей Мичков и Данила Юров сдали положительные тесты и вынуждены отбывать карантин под наблюдением врача команды.
Казалось, у остальных игроков и тренерского штаба сборной не возникнет проблем с тем, чтобы в первый день нового года оказаться на родине, но 1 января разразился громкий скандал. Вот здесь читаем внимательно.
Журналистка шведского канала SVT Мария Леманн сообщила, что хоккеисты молодежных сборных России и Чехии не смогли улететь из Калгари (Канада) во Франкфурт-на-Майне (Германия). По ее данным, игроков сняли с самолета из-за отказа надеть маски. Кроме того, часть парней были пьяны и курили.
Сотрудники аэропорта оперативно выгрузили багаж двух сборных, а игроки финской команды смогли покинуть Канаду беспрепятственно.
По информации корреспондента Sport24 Дарьи Тубольцевой одним из «героев» скандальной ситуации стал главный тренер российской «молодежки» Сергей Зубов:
«Мне рассказали, что порядок на борту самолета нарушили не хоккеисты, а члены делегации сборной России, которым очень хотелось курить. Одним из них был Сергей Зубов».
Своей версией случившегося поделился и менеджер сборной Чехии Отакар Черны:
«Ситуация получилась странной. Мы прибыли в аэропорт за три часа до вылета. Наши хоккеисты пошли покупать сувениры. Мы видели россиян, которые были в баре. Я предупредил наших ребят, чтобы они держали социальную дистанцию и не снимали маски.
Когда мы сели в самолет, заметили, что некоторые россияне не соблюдали санитарные правила. Вероятно, свою роль сыграл алкоголь. А один из членов сборной России даже курил в тоннеле перед посадкой в самолет.
Некоторые пассажиры пожаловались на поведение россиян. В итоге экипаж всех нас вывел. Чешская экипировка такая же, как российская. Там только разные надписи. И фактически по этой причине нам сказали, что мы не можем больше сесть в самолет».
А вот, что говорят игроки молодёжной сборной России.
Василий Пономарёв:
«Я сидел в конце самолёта, там, где сидят стюардессы. Когда загрузились на рейс, я не видел, что там происходило. Включил наушники, собрался засыпать и уже почти уснул, как мне постучала по плечу соседка по месту и сказала, что все команды просят на выход. Почему — я так и не понял. У сборной России алкоголя на борту не было. Игроку финнов стало плохо? Да. Только это случилось не в самолёте, а в зале ожидания. Он буквально „выдал всё из себя“. Это факт, видели все. Его потом обратно посадили на место».
Иван Дидковский:
«Все расселись в самолёте, приготовились лететь. Сидели рядом с ребятами из команды, поняли, что рейс задерживается. Потом объявили, что всем необходимо покинуть самолёт с вещами.
Сидели ли в масках? Да, нам никто не делал замечаний. Делали ли кому-то? Не исключено, но это огромный рейсовый самолёт, хоккеисты сидели вперемежку с другими пассажирами. Если и делали, я не видел.
Это не так быстро произошло. Сначала все долго стояли и ждали, потом понемногу пассажиров начали пускать обратно на рейс, рассаживали по зонам. В конце остались три сборные, финнов пустили на рейс, а нам и чехам сказали, что мы не летим».
Наставник молодёжной сборной России Сергей Зубов:
«Версия, что алкоголь на борт пронесли чехи? Не могу говорить за чешскую сборную. Но они очень быстро открестились от всего и свалили всё на нас. Мы не собираемся этим заниматься, но делать так, как они — очень некрасиво. Версия о том, что их не пустили обратно на борт, потому что перепутали с нашей командой — просто смешная. В каждой делегации определённое количество людей, билеты не безымянные, на нашей форме разные логотипы и надписи, перепутать команды попросту невозможно. Если бы у чехов было всё нормально с поведением, то их бы пустили назад».
Федерация хоккея России (ФХР) держит под контролем ситуацию. В настоящий момент куплены обратные билеты, команда вылетела в Россию из Калгари с пересадками в Торонто и Франкфурте, и прибудет в Москву вечером 2 января.
ФХР выяснит информацию по случившемуся инциденту, связанному со снятием российской команды с рейса Калгари — Торонто, у канадского авиаперевозчика и Международной федерации хоккея.
Основная претензия у перевозчика к представителям российской делегации, из-за которой команду сняли с рейса — «медицинские маски были надеты неправильно».
Заметьте, речь идет только о масках. Но на основании баек шведской журналистки, и сказок членов чешской делегации, наших мальчишек в России уже клянут последними словами и обзывают непотребно. И не только глумливый комментатор биатлонный, но и депутаты Государственной думы.
Вот вам и подтверждение истины про «пророков в своем Отечестве», применительно к хоккею.
Мы же, следуя политике нашего агентства, дождемся официальной версии случившегося и поддержим талантливую молодежь, которая потом уедет в НХЛ, где играют сегодня звезды российского хоккея.
- Статья
- Чтение занимает 7 мин
Библиотеки управления функциями .NET Core обеспечивают идиоматическую поддержку реализации флагов функций в приложении .NET или ASP.NET Core. Эти библиотеки позволяют декларативно добавлять в код флаги компонентов, чтобы вам не нужно было вручную писать код для включения и отключения функций с помощью операторов if
.
Библиотеки управления функциями также управляют жизненным циклом флагов функций в фоновом режиме. Например, библиотеки отвечают за обновление и кэширование состояний флагов или гарантируют неизменность состояния флага во время вызова запроса. Кроме того, библиотека ASP.NET Core предоставляет готовое решение по интеграции, включая действия контроллера MVC, представления, маршруты и ПО промежуточного слоя.
В этом кратком руководстве показано несколько способов использования флагов компонентов в приложении ASP.NET Core. В этом руководстве показаны дополнительные параметры и возможности настройки библиотек управления компонентами. Вы можете использовать пример приложения, созданный с помощью этого краткого руководства, чтобы испытать пример кода, приведенный в этом руководстве.
Справочную документацию по API управления компонентами ASP.NET Core см. в статье Пространство имен Microsoft.FeatureManagement.
В этом учебнике рассматривается следующее.
- Добавить флаги функций в ключевых частях приложения для управления доступностью функций.
- Как выполнить интеграцию с Конфигурацией приложений при использовании этой службы для управления флагами функций.
Настройка управления функциями
Чтобы получить доступ к диспетчеру компонентов .NET Core, в приложении должны быть ссылки на пакет NuGet Microsoft.FeatureManagement.AspNetCore
.
Диспетчер компонентов .NET Core настраивается из собственной системы конфигурации платформы. Таким образом, вы можете определить параметры флагов компонентов приложения, используя любой источник конфигурации, поддерживаемый .NET Core, включая локальный файл appsettings.json или переменные среды.
По умолчанию диспетчер компонентов извлекает конфигурацию флагов компонентов из раздела "FeatureManagement"
данных конфигурации .NET Core. Чтобы использовать расположение конфигурации по умолчанию, вызовите метод AddFeatureManagementIServiceCollection, переданный в метод ConfigureServices класса Startup.
using Microsoft.FeatureManagement;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
...
services.AddFeatureManagement();
}
}
Можно указать, чтобы конфигурация управления компонентами была получена из другого раздела конфигурации, вызвав Configuration.GetSection и передав имя нужного раздела. В следующем примере диспетчер функций считывает данные из другого раздела под названием "MyFeatureFlags"
:
using Microsoft.FeatureManagement;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
...
services.AddFeatureManagement(Configuration.GetSection("MyFeatureFlags"));
}
}
При использовании фильтров во флагах компонентов необходимо включить пространство имен Microsoft.FeatureManagement.FeatureFilters и добавить вызов AddFeatureFilters, указав имя типа фильтра, который будет использоваться в качестве универсального типа метода. Дополнительные сведения об использовании фильтров компонентов для динамического включения и отключения возможностей см. в статье Включение промежуточного развертывания компонентов для целевых аудиторий.
В следующем примере показано, как использовать встроенный фильтр функций под названием PercentageFilter
:
using Microsoft.FeatureManagement;
using Microsoft.FeatureManagement.FeatureFilters;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
...
services.AddFeatureManagement()
.AddFeatureFilter<PercentageFilter>();
}
}
Вместо того, чтобы прописывать флаги компонентов в коде приложения, рекомендуется хранить их за пределами приложения и управлять ими отдельно. Так вы можете изменять состояния флагов в любое время и немедленно применять эти изменения в приложении. Служба Конфигурации приложений Azure предоставляет выделенный пользовательский интерфейс портала для управления всеми флагами компонентов. Служба Конфигурации приложений Azure также предоставляет приложению флаги компонентов непосредственно через клиентские библиотеки .NET Core.
Самый простой способ подключить приложение ASP.NET Core к Конфигурации приложений — использование поставщика конфигураций, включенного в пакет NuGet Microsoft.Azure.AppConfiguration.AspNetCore
. После включения ссылки на пакет выполните описанные ниже действия, чтобы использовать этот пакет NuGet.
-
Откройте файл Program.cs и добавьте следующий код:
Важно!
CreateHostBuilder
заменяетCreateWebHostBuilder
в .NET Core 3.x. Выберите правильный синтаксис в зависимости от среды.- .NET 5.x
- .NET Core 3.x
- .NET Core 2.x
using Microsoft.Extensions.Configuration.AzureAppConfiguration; public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => webBuilder.ConfigureAppConfiguration(config => { var settings = config.Build(); config.AddAzureAppConfiguration(options => options.Connect(settings["ConnectionStrings:AppConfig"]).UseFeatureFlags()); }).UseStartup<Startup>());
-
Откройте Startup. CS и обновите метод и,
ConfigureServices
чтобы добавить встроенное промежуточное программное обеспечение с именемUseAzureAppConfiguration
. Это ПО позволяет периодически обновлять значения флагов функций, пока веб-приложение ASP.NET Core продолжает получать запросы.public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseAzureAppConfiguration(); }
public void ConfigureServices(IServiceCollection services) { services.AddAzureAppConfiguration(); }
В типичном сценарии значения флагов компонентов периодически обновляются при развертывании и включении различных компонентов приложения. По умолчанию значения флагов функций кэшируются на 30 секунд, поэтому операция обновления, запущенная в тот момент, когда ПО промежуточного слоя получает запрос, не обновит значение, пока не истечет срок действия кэшированного значения. В приведенном ниже коде показано, как изменить срок действия кэша или интервал опроса на 5 минут, установив CacheExpirationInterval в вызове UseFeatureFlags.
config.AddAzureAppConfiguration(options =>
options.Connect(settings["ConnectionStrings:AppConfig"]).UseFeatureFlags(featureFlagOptions => {
featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5);
}));
});
Объявление флага функции
Каждое объявление флага функции состоит из двух частей: имя и список из одного или нескольких фильтров, используемых для вычисления состояния функции (то есть, если его значение равно ). Фильтр определяет критерий, при котором должна быть включена функция.
Если флаг функции имеет несколько фильтров, список фильтров проходится по порядку, пока один из фильтров не определит, что функция должна быть включена. На этом этапе флаг функции включен, и все остальные результаты фильтрации пропускаются. Если фильтр не указывает, что эта функция должна быть включена, флаг функции остается отключенным.
Диспетчер функций поддерживает файл appsettings.json в качестве источника конфигурации для флагов функций. В следующем примере показано, как настроить флаги функций в JSON-файле:
{"FeatureManagement": {
"FeatureA": true, // Feature flag set to on
"FeatureB": false, // Feature flag set to off
"FeatureC": {
"EnabledFor": [
{
"Name": "Percentage",
"Parameters": {
"Value": 50
}
}
]
}
}
}
В соответствии с соглашением раздел FeatureManagement
этого JSON-документа используется для параметров флагов функций. Предыдущий пример показывает три флага функций с фильтрами, определенными в свойстве EnabledFor
:
FeatureA
включенFeatureA
FeatureB
FeatureB
.FeatureC
указывает фильтр с именемPercentage
и свойствомParameters
.Percentage
— это настраиваемый фильтр. В этом примереPercentage
указывает вероятность с 50% дляFeatureC
флага в значениеPercentage
. Инструкции по использованию фильтров компонентов см. в статье Использование фильтров компонентов для включения условных флагов компонентов.
Внедрение зависимостей для доступа к IFeatureManager
Для некоторых операций, таких как проверка значений флагов компонентов вручную, необходимо получить экземпляр IFeatureManager. В MVC ASP.NET Core можно получить доступ к диспетчеру компонентов IFeatureManager
путем внедрения зависимостей. В следующем примере аргумент типа IFeatureManager
добавляется в сигнатуру конструктора для контроллера. Среда выполнения автоматически разрешает ссылку и предоставляет интерфейс при вызове конструктора. Если вы используете шаблон приложения, в котором у контроллера уже есть один или несколько аргументов внедрения зависимостей в конструкторе, например ILogger
, можно просто добавить IFeatureManager
в качестве дополнительного аргумента:
- .NET 5.x
- .NET Core 3.x
- .NET Core 2.x
using Microsoft.FeatureManagement;
public class HomeController : Controller
{
private readonly IFeatureManager _featureManager;
public HomeController(ILogger<HomeController> logger, IFeatureManager featureManager)
{
_featureManager = featureManager;
}
}
Ссылки на флаги функций
Определите флаги компонентов как строковые переменные, чтобы ссылаться на них из кода:
public static class MyFeatureFlags
{
public const string FeatureA = "FeatureA";
public const string FeatureB = "FeatureB";
public const string FeatureC = "FeatureC";
}
Проверка флага функции
Распространенный шаблон управления компонентами — проверка того, задано ли флагу компонента значение on. Если значение задано, выполните раздел кода. Например:
IFeatureManager featureManager;
...
if (await featureManager.IsEnabledAsync(MyFeatureFlags.FeatureA))
{
// Run the following code
}
Действия контроллера
В контроллерах MVC с помощью атрибута FeatureGate
можно управлять тем, что именно будет включено: весь класс контроллера или определенное действие. Следующий HomeController
контроллер должен FeatureA
быть HomeController
, прежде чем можно будет выполнить любое действие, которое содержит класс контроллера:
using Microsoft.FeatureManagement.Mvc;
[FeatureGate(MyFeatureFlags.FeatureA)]
public class HomeController : Controller
{
...
}
Следующее Index
действие должно FeatureA
быть Index
, прежде чем его можно будет запустить:
using Microsoft.FeatureManagement.Mvc;
[FeatureGate(MyFeatureFlags.FeatureA)]
public IActionResult Index()
{
return View();
}
Когда контроллер MVC или действие блокируется из-за того, что флагу компонента контроллера присвоено значение off, вызывается зарегистрированный интерфейс IDisabledFeaturesHandler. Интерфейс IDisabledFeaturesHandler
по умолчанию возвращает клиенту код состояния 404 без текста ответа.
Представления MVC
Откройте файл _ViewImports.cshtml в каталоге Представления и добавьте в него вспомогательную функцию тегов диспетчера функций.
@addTagHelper *, Microsoft.FeatureManagement.AspNetCore
В представлениях MVC с помощью тега <feature>
можно настроить отображение содержимого на основе того, включен ли флаг функции:
<feature name="FeatureA">
<p>This can only be seen if 'FeatureA' is enabled.</p>
</feature>
Для отображения альтернативного содержимого при невыполнении требований можно использовать атрибут negate
.
<feature name="FeatureA" negate="true">
<p>This will be shown if 'FeatureA' is disabled.</p>
</feature>
Тег функции <feature>
также можно использовать для отображения содержимого, если включены функции в списке.
<feature name="FeatureA, FeatureB" requirement="All">
<p>This can only be seen if 'FeatureA' and 'FeatureB' are enabled.</p>
</feature>
<feature name="FeatureA, FeatureB" requirement="Any">
<p>This can be seen if 'FeatureA', 'FeatureB', or both are enabled.</p>
</feature>
Фильтры MVC
Фильтры MVC можно настроить таким образом, чтобы они активировались в зависимости от состояния флага функции. Эта возможность ограничена фильтрами, которые реализуют IAsyncActionFilter. С помощью приведенного ниже кода добавляется фильтр MVC с именем ThirdPartyActionFilter
. Этот фильтр активируется в пределах конвейера MVC, только если флаг FeatureA
включен.
using Microsoft.FeatureManagement.FeatureFilters;
IConfiguration Configuration { get; set;}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options => {
options.Filters.AddForFeature<ThirdPartyActionFilter>(MyFeatureFlags.FeatureA);
});
}
ПО промежуточного слоя
Кроме того, флаги функций позволяют добавлять ветви приложений и ПО промежуточного слоя в случае выполнения условия. С помощью приведенного ниже кода компонент ПО промежуточного слоя вставляется в конвейер запроса, только если флаг FeatureA
включен.
app.UseMiddlewareForFeature<ThirdPartyMiddleware>(MyFeatureFlags.FeatureA);
Следующий код представляет более общую возможность разветвления всего приложения на основе флага функции:
app.UseForFeature(featureName, appBuilder => {
appBuilder.UseMiddleware<T>();
});
Дальнейшие действия
Из этого руководства вы узнали, как с помощью библиотек Microsoft.FeatureManagement
реализовать флаги функций в приложении ASP.NET Core. Подробные сведения о поддержке управления функциями в службе «Конфигурация приложений» и ASP.NET Core см. по следующим ссылкам:
- Пример кода для флага функции ASP.NET Core
- Документация по Microsoft.FeatureManagement
- Управление флагами компонентов
Европейская комиссия выпустила 32-страничный документ «Руководящие принципы Европейской комиссии по инклюзивной коммуникации»/European Commission Guidelines for Inclusive Communication, своеобразный «политкорректный словарь-справочник», предназначенный для еврочиновников и европарламентариев.
Напомним, что Еврокомиссия (ЕК) — высший орган исполнительной власти Европейского союза, ответственный за подготовку законопроектов. Кабинет министров из 27 членов-комиссаров. С 1.12.2019 ЕК возглавляет акушер-гинеколог по специальности, бывший функционер немецкого Христианско-демократического союза и бывший министр обороны Германии, экс-член руководства швабовского Всемирного экономического форума, горячая сторонница однополых браков Урсула Гертруда фон дер Ляйен.
Так вот, Еврокомиссия запретила сотрудникам использовать в своей речи слова, которые могут быть оскорбительными для людей определённого пола, каких-либо рас, национальностей или верований, разных возрастов и сексуальных предпочтений. В частности, оскорбительными и неприемлемыми признаны слова «Рождество», «господин», госпожа», «гей», «лесбиянка» и мн. др. Под запрет попали любые упоминания Санта Клауса, Девы Марии, Иосифа.
«Избегайте предположения, что все являются христианами. Не все празднуют рождественские праздники. Мы должны учитывать тот факт, что у людей разные религиозные традиции и календари«, — говорится в документе. Поэтому вместо Рождества — только «праздничный период» (holiday season).
Ни в коем случае нельзя даже — внимание! — употреблять словосочетание «колонизация Марса». Допустима лишь фраза «отправка людей на Марс». Серьёзно. Ибо необходимо формировать «инклюзивную коммуникацию».
«Вместо «опасных» слов предлагается использовать их нейтральные аналоги. Например, вместо указания какого-то конкретного сексуального меньшинства, предлагается говорить об «однополых парах». А то ведь и ошибиться можно. Значительное место в документе уделено именно вопросам, связанных с полом. Теперь чиновникам запрещается использовать такие слова, которые содержат корень, связанный с мужским полом, например в английском слове policeman (полицейский) часть man как раз и обозначает мужчину. Даже слово «рукотворный» (man-made) предлагается заменить на «искусственно созданный», а вместо фразы «огонь — величайшее достижение человека» (слово для человека и мужчины здесь совпадают) использовать выражение «огонь — величайшее достижение человечества». Рекомендуется избегать и традиционного для многих языков упоминания при перечислении сначала мужчин и их социальных ролей, то есть говоря о родителях, «отец и мать» будет звучать неинклюзивно. Помимо всего прочего в чёрный список попало и обращение «дамы и господа», вместо которого предлагается употреблять «дорогие коллеги». Кроме того, при выборе иллюстраций для докладов работники Еврокомиссии должны стараться, чтобы на картинках «женщины и девушки не были представлены дома или в пассивных ролях, в то время как мужчины активны и склонны к приключениям». Некоторые слова относительно недавно попали в списки запрещенных. Например, таким понятием стала «колонизация», причём даже применительно к освоению пространства за пределами Земли. «Рождество» тоже оказалось исключено, вместо него теперь просто «праздники». Ведь для мигрантов-мусульман упоминание христианского праздника может быть неприятно«, — пишет «Комсомольская правда».
«Вместо слов «гей» (gay) и «лесбиянка» (lesbian) предлагается взять в оборот фразы «однополая пара» (same-gender couple) или использовать слово гей в сочетании с существительным person (gay person). В глоссарии отмечается, что чиновники не должны «предполагать» сексуальную ориентацию человека или его гендерную идентичность. Авторы рекомендуют спрашивать, какие местоимения предпочитает собеседник. От чиновников также требуют воздержаться от использования таких терминов, как «рукотворный» (man-made) и «дамы и господа» в официальных публикациях. Взамен предлагается использовать «искусственно созданный» (synthetic) и «коллеги» (colleagues, participants)«, — уточняет Газета.Ru. «Авторы инструкции считают, что тем самым элиты повлияют на общество и традиции европейцев, которые станут более нейтральными и толерантными«, — указывает «МК».
Официальный представитель Еврокомиссии Эрик Мамер: «Это рекомендация, цель которой — показать разнообразие европейской культуры«. Еврокомиссар по вопросам равенства Хелена Далли (представляющая Партию европейских социалистов и Лейбористскую партию Мальты): «Мы всегда должны предлагать инклюзивное общение, гарантируя таким образом, что каждый будет оценён и признан во всех наших материалах, независимо от пола, расы или этнического происхождения, религии, инвалидности, возраста или сексуальной ориентации«.
двойной клик — редактировать изображение
Несогласие с инициативой ЕК выразил государственный секретарь Ватикана кардинал Пьетро Паролин. «Я считаю стремление избавиться от дискриминации правильным. Однако, на мой взгляд, это, конечно, не способ достижения данной цели. Потому что в конечном итоге это рискует разрушить, уничтожить человека… Европа обязана своим существованием и своей идентичностью многим вкладам. Мы, конечно, не можем забыть, что одним из главных вкладов, если не главным, было само христианство. Поэтому уничтожение различий и уничтожение корней означает именно уничтожение личности«, — сказал он 30 ноября в интервью порталу Vatican News.
Консервативные политики и журналисты тоже, естественно, раскритиковали инициативу. А федеральный секретарь итальянской «Лиги» (Лиги Севера), экс-вице-премьер Маттео Сальвини просто написал: «Мария, мама. Иосиф, папа. Да здравствует святое Рождество. Надеюсь, что никого в Европе это не обидит«.
После появления внутреннего документа на страницах СМИ, еврочиновники нехотя объявили, что рекомендации временно отозваны для «доработки«.
двойной клик — редактировать изображение
Тем временем в Великобритании правительство наложило запрет на слоган акции, призывающей к ПЦР-тестированию перед поездками: «Не забирайте COVID домой на Рождество». Из опасений, что он оскорбит религиозные меньшинства, сообщила Daily Mail.
Вот уже шестой год я вхожу в экспертный совет премии «Кульминация». Наша задача – из лонг-листа, предоставляемого российскими театральными конкурсами, семинарами и фестивалями, составить для жюри шорт-лист. Таким образом, раз в год мы садимся и читаем всю эту современную драматургию.
По итогам издается сборник самых современных пьес и рассылается по всем театрам страны – чтобы им было из чего выбрать.
Это было логичное решение: подводить итоги того, что представляют другие – более камерные, конкурсы, которые пылесосят новые таланты и новый материал для российских театров в течение года. Каждый, кто связан с театром, знает эту нарастающую проблему – отсутствие материала. Многие театры цепляются за нестареющую классику. Хотя порой правда заключается лишь в том, что «классические пьесы» – это тот самый материал, за который уже не надо платить автору.
Но в стране работают такие институции, как фестиваль «Любимовка», «Маленькая ремарка», Волошинский фестиваль, международный конкурс русскоязычной драматургии «Действующие лица», «Ремарка», всероссийский семинар драматургов «Авторская сцена», театральный фестиваль «Пять вечеров», программа «Первая читка», Международный конкурс драматургов «Евразия», конкурс современной драматургии «Исходное событие». Я неслучайно перечисляю их все – так как «Кульминация» становится не только конкурсом драматургов, но и неофициальным соревнованием для этих институций – кто работает качественней и у кого тоньше нюх на новое и прекрасное.
Мы уже не первый год читаем корпус поданных на «Кульминацию» текстов, и самое простое – впасть в режим grumpy old men и ворчать, ворчать, ворчать. Принципиальные моменты, тем не менее, каждый год только усугубляются, что не означает, конечно, что мы наблюдаем картину упадка и деградации русской драматургии. Просто есть какая-то системная ошибка у большинства новых авторов. Она называется «дописаться до мышей». Сейчас ведь куча всяких недорогих курсов «как писать сценарии», но очевидно, что курсов «как писать пьесы» отчаянно не хватает. А если они есть, то там не учат обращаться напрямую в небо.
Когда мы читаем «На дне», вообще-то нам наплевать, какие лавки были в ночлежке, нам глубоко все равно, был ли у «Бесприданницы» телефон или береста для письма. И вообще – то, о чем люди там, в этих старых, прекрасных пьесах думают и говорят – совершенно универсально. И эти сто лет – не помеха. А может быть – даже помощь. Архетипичные трагедии. Универсальные от слова «универсум», а не от количества гендеров. От слова «вселенная». Поэтому эти пьесы и живут столетия: потому что вопросы задаваемые – они вечные.
Если вы не хотите обращаться к вечности и в то же время сидеть с каменным лицом на сложных щах, то тогда нужно уточнить жанр, в котором вы работаете, потому что лёгкие театральные зрелища – тоже уважаемый, а главное – востребованный жанр. Вам туда. Молодые драматурги сразу хотят вывалить нам на головы все проблемы мира, да так, чтобы они были упакованы в максимально модный skin на манер рэп-причитаний.
Вот, скажем пьеса Микиты Ильинчика Dark Room. Для немодных граждан объясняю: dark room – это темная комната в гей-клубах, где можно заниматься сексом с незнакомцами полностью анонимно («даркрум» для гетеро в Берлине только один – в «Бергхайне», на десятки гейских – мы, гетеро, живем уныло). Вся пьеса – страдания юного гея-сироты, отданного на усыновление за границу. Модный статус жертвы, а также интернет-сайты, скриншоты и прочие скайпы вместо внятного текста. И тем более – вместо явной идеи. Так всегда случается, «когда твоя башка превращается во вселенскую простату» (цитата). Интересно, готов ли русский театр обменять заботу о душе на заботу о вселенской простате? Поклонение телесному низу вообще не в традициях русской литературы и театра. И дело не в призрачной «духовности» – на этом гейско-интернетном поле, например, фантастически точно сыграл Упырь Лихой с его «Славянскими Отаку».
В нынешней подборке новых пьес ощущается вместо обрыдлой «духовности» прямое обращение к духам. Вроде текста Олега Михайлова «Инау Китовой Бухты». От травмы по поводу смерти матери к изложению мифов и легенд туземных народов Сахалина, Камчатки и Чукотки. Айны, чукчи, коряки – тут много кто рассказывает сказки. Рассказал про всех. Только про Кутха не рассказал. А мёртвая мать – кукла. Бабушка Нупа, похожая на Джокера. «Обхватив друг друга, слились в Первую молнию Небесный змей и Богиня-Солнце». Но благодаря этим образам выстраивается какое-никакое повествование, где, наконец, нет места эсэмэскам, социальным сетям и цитатам из «Твиттера» – есть в этом что-то очень человечное.
А еще в нынешних пьесах очень много кукол, мёртвых матерей и отцов. Иногда мёртвая мать и кукла – это одно и то же. Присутствует интерес к психиатрии и психотерапии (Елена Ерпылева, «Тир. Правила игры»). Такое впечатление, что авторы, столкнувшись в жизни с курсом психотерапии, тут же бегут писать пьесу, дабы отработать свои травмы. Но в этом есть что-то мегаинфантильное. По количеству трупов, рассуждающих о судьбах России, конечно, чемпион Дмитрий Ретих («Шочимики – цветочная смерть»). Канва выглядит примерно так: «1826 год, Кронверк Петропавловской крепости. На деревянном помосте виселицы стоят пятеро. 1881 год, плац Семеновского полка. На деревянном помосте виселицы стоят пятеро. 1015 год, Киев. У жертвенной ямы сидят князья-братья Борис и Глеб», и так далее аж до 2826 года.
Кроме проклятых матерей-кукол, рассуждающих о судьбах страны трупов, девочек-самоубийц, смартфонов и блогеров, мало кто обходится без мата. «Вадик проводит рукой по затылку, рассматривает руку. Возвращается к двери и выписывает на ней кровью – «ПИ», снова прикладывает руку к затылку, морщится, стонет, и выводит дальше – «ДА» (Дмитрий Богославский, «Катапульта»). Есть попытки синтезировать увиденное ранее («Аспирин», Надя Алексеева), где есть и «Приключения Карика и Вали» – они же «Дорогая, я уменьшил детей», и даже мюзиклы из «Петтсона и Финдуса», плюс речитатив, он же коллективный Оксимирон. Но тут хотя бы присутствует фантазия. Во всем остальном присутствует бесконечная «квартира в покосившейся трехэтажке», где ведутся бесконечные разговоры, перемежаемые взаимной агрессией (Татьяна Загдай, «Человек в закрытой комнате», Сергей Ермолин, «Стеклянная луна»).
Иногда квартира в трехэтажке принимает форму автобуса с тремя челночницами, которые едут на Север. И жанр разговоров в покосившейся трехэтажке приукрашивается фольклором народов Севера (Мария Малухина, «Полярная болезнь»). 1996 год, в автобусе едут три девушки – бесконечный нарратив. Бесконечные разговоры за жизнь не выше уровня потолка автобуса. И только песни аборигенов и сказания – глоток свежего воздуха в этом повествовании «Ныряет на дно ловкая выдра Яха’Ерв, хозяин реки, звенят капли воды, как веселый колокольчик…» Что-то много у нас в драматургическом конкурсном наборе аборигенов Крайнего Севера. Мне-то что – я тридцать лет на Крайнем Севере прожил, мне прикольно, но о чем-то это говорит. А о чем, не пойму – может, творчески просыпается Север? Крайний, как плоть.
Самая интересная пьеса конкурсного набора, наверное, тоже про Север и тоже про людей в обстоятельствах. Работа «Чёрная пурга» Анастасии Букреевой сразу даёт картину засыпанного снегом города, по которому бродит медведь с куском кабеля в пасти, символом, а не примитивной декорацией.
И всё, что говорят персонажи – практически каждая реплика – просится в цитаты. Как это было уже с «Человеком из Подольска» Данилова, пьесы, которая вовсе не про Подольск. Наличие таких персонажей, как «Мёртвый шахтер» и «Шахтёр, который умрет через две недели», жутковато актуально. Но, как вы понимаете, пьеса написана не вчера. И нет в этом никакой чернухи, за счет которой пытаются утвердиться менее талантливые авторы. Эта пьеса беременна юмором и удивительно доброй интонацией. «Девушка с золотыми волосами: – Ужасно – это когда нет интернета. Это самое ужасное. А когда наступает чёрная пурга – это ужаснее ужасного. Однажды одна женщина вышла на улицу, и её убило. А потом вышел её муж, и его тоже убило. А потом сына и дочь, собаку, кошку и волнистого попугайчика». А ещё внутри есть и игра, и абсурд – всё то, что отличает хороший текст от поделки по поводу. Это мой личный фаворит.
А ещё мы видим возвращение советско-американского жанра «производственная драма» в виде «Почтамта» Глеба Планкина. Обязательно с матом, ну и в пытошной в отделении полиции, конечно же, висит флаг России и портрет Путина. Вообще любую пьесу с матом можно даже не читать. Потому что автор, использующий мат, а) безнадежно устарел, б) у него нет художественных средств в принципе. И, конечно, можно не читать и не смотреть пьесы, где в ремарках «Из-за стены раздается ругань напополам с песней «Группа крови» группы «Кино» (П. Соколов, «Проверка»). До свиданья. Нужно ли объяснять, почему?
Но дело в том, что по традиции на «Кульминации», на шоу-празднике по поводу вручения наград, «брусникинцы» делают попурри из пьес-конкурсантов. И очень часто диву даёшься – как они умудряются выцепить из, казалось бы, совсем безнадёжных с точки зрения автора (меня) пьес что-то совершенно новое и поразительное. Что говорит о том, что театр – это гораздо более сложное явление, чем отдельные его составляющие. Одна из которых – пьеса как таковая, написанная на бумаге. Или на айпаде. Или в смартфоне. Или на чём там они пьесы теперь пишут.