Может быть, будет уместным отметить, что для решения описанной задачи генерации IObservable из событий есть инструмент Pharmacist, который работает через ICSharpCode.Decompiler, и его версия в виде ObservableEventsSourceGenerator, которую всё никак не опубликуем.
Спасибо, что нашли время написать развёрнутый комментарий! Было очень интересно ознакомиться с содержательными аргументами и примерами насчёт того, как работают зависимости, и к каким последствиям могут приводить вне зависимости от типа стимула.
Вообще с командами в ReactiveUI работать несколько более удобно, чем с объектами типа Interaction. Привязывать команду модели представления к элементу интерфейса можно как в XAML-разметке — с помощью синтаксиса {Binding CommandName}, — так и в коде на языках программирования C#, F#, или Visual Basic, с помощью extension-методов ReactiveUI, включая методы Bind, BindCommand, OneWayBind, BindTo. То есть можно делать так:
this.BindCommand(
ViewModel,
vm => vm.AwesomeCommand,
view => view.AwesomeButton);
Последний вариант хорош тем, что при переименовании свойства модели представления, к которой мы привязываем данные, мы узнаем о том, что что-то пошло не так, уже на этапе компиляции приложения. Причём для WPF, Windows Forms и Xamarin Forms это более актуально, чем для UWP или Avalonia, которые поддерживают compiled-биндинги. А на Xamarin.Android или Xamarin.iOS других вариантов в общем-то и нет. Дополнительно, можно подписываться на исключения, выброшенные экземплярами ReactiveCommand, двумя способами — можно подписаться на исключения одной команды:
LoadUsers.ThrownExceptions.Subscribe(
exception => /* update property etc. */
);
Такой подход, с одной стороны, позволяет сделать приложение более отказоустойчивым и научить его отправлять отчёты об ошибках куда-нибудь для дальнейшего анализа, а с другой — позволяет не писать try { } catch { } блоки повсеместно в лямбдах, предлагая вместо этого написать реактивный пайплайн наподобие:
_errorMessage = Login // ReactiveCommand<TInput, TOutput>
.ThrownExceptions // Все исключения свалятся сюда.
.Select(exception => exception.Message)
.ToProperty(this, x => x.ErrorMessage);
Впрочем, впоследних версиях ReactiveUI должен быть доступен синтаксис BindInteraction, позволяющий привязывать Interaction к действиям более удобным образом:
// В файле *.xaml.cs:
this.BindInteraction(
ViewModel,
vm => vm.MyInteraction,
context => /* Обработчик взаимодействия. */);
Очень любопытно — у вас всё-таки получилось ознакомиться с научными исследованиями, опубликованными в peer-reviewed журналах, на которые ссылается ваш оппонент в последнем сообщении — можете как-то прокомментировать?
Ну то есть я понимаю, что обращать внимание на негативные стороны порноиндустрии сейчас немодно, но игнорировать неудобные результаты вполне приличных научных исследований, опубликованных в рецензируемых журналах, которые приводит ваш оппонент [1, 2, 3], как-то всё-таки ненаучно.
В треде же, кажется, хотели выяснить истину, а не отстоять свою точку зрения, да и что-то запрещать вроде бы никто не призывал. Заранее спасибо.
Для добавления атрибута с помощью генератора есть две причины. С одной стороны, мы должны ссылаться на генератор по-особенному, как на анализатор — если бы мы решили атрибут не генерировать, нам бы пришлось собирать два пакета — один был бы собственно генератором, а другой — содержал бы атрибут. Такой паттерн использовался, например, в библиотеке Pharmacist ещё до появления .NET 5 source generators. С другой стороны, сами генераторы исходного кода довольно тесно заинтегрированы в .NET CLI, Visual Studio, JetBrains Rider, в результате генерация происходит при любом изменении исходного файла. Выглядит это следующим образом:
Добавлю эту гифку в статью для контекста, спасибо за вопрос!
Вот, кстати, очень любопытно. Допустим, тернистый путь пройден — вы поступили, выучились, университет закончен, колоссальный объём знаний, позволяющий решать огромное количество сложных задач за вменяемое время, получен, престижный диплом — тоже. А что делать дальше? Ну, то есть, вы после окончания университета собираетесь в какую-то конкретную организацию идти работать по специальности? Наверняка уже есть планы — было бы интересно почитать. Apple, Microsoft, Google, или что-то более интересное и наукоёмкое в зарубежных НИИ?
Да, дебажили тестами. Генератор является вообще говоря обычной библиотекой с таргетом на .NET Standard 2.0, если на него сослаться классическим способом, а не как на анализатор (ProjectReference без OutputItemType="Analyzer").
Поэтому весь интересный код можно вынести в internal-объекты, расставить InternalsVisibleTo для проектов с тестами, и обложить эти объекты с интересным кодом тестами, чтоб в нетестируемом коде было нечему ломаться. Потом уже в JetBrains Rider гулять по коду с дебаггером, разбираясь, что и где пошло не так. Тесты, кстати, сейчас лежат тут: https://github.com/AvaloniaUI/Avalonia.NameGenerator/tree/main/src/Avalonia.NameGenerator.Tests (вообще стараюсь избегать ссылок на этот репозиторий в материале, потому что он скоро уедет в главный репозиторий Avalonia)
На самом деле всё не совсем так, как вы пишете. Да, действительно, с выходом .NET MAUI Xamarin.Forms отправится на свалку, потому что .NET MAUI и есть, по сути своей, эволюция Xamarin.Forms с новыми API. При этом, в Microsoft собираются сделать API .NET MAUI совместимым с API Xamarin.Forms. Подробнее о планах команды можно посмотреть в видео с виртуальной конференции ReactiveUI под названием Dualscreen, .NET MAUI and ReactiveUI. Там разработчик нового MAUI и старого Xamarin.Forms делится инсайдами о новом API.
Далее, на странице репозитория dotnet/maui мы видим сводку о поддерживаемых платформах, согласно которой Linux всё так же остаётся community-maintained. Это значит, что, ну, Microsoft Linux поддерживать не будет, а Avalonia уже поддерживает. Не исключено, что может появиться бакенд MAUI, основанный на Avalonia, с помощью которого можно будет обеспечить поддержку Linux — будем посмотреть.
Было бы любопытно посмотреть на что-то подобное, написанное на Xamarin.Forms и работающее на десктопах. Потому что есть мнение, что основной нишей Xamarin.Forms (и MAUI) останутся приложения попроще, больше ориентированные на мобильный сегмент, а не на высокопроизводительный десктоп.
А Uno пока, как говорят, needs more love. Но я слабо знаком с этим фреймворком — про производительность или сегмент, который оно покрывает, ничего не могу сказать. Надо пробовать.
А мне вот очень понравился калькулятор с тёмно-розовыми кнопками. Справедливости ради стоит заметить, что в Avalonia 0.10.0, который уже вот-вот зарелизят, сделали тему, основанную на Microsoft Fluent Design. А ещё есть набор стилей Citrus.Avalonia. С релизом 0.10 будет сложнее угадать эту технологию по UI!
Что-то наподобие интерфейса ICommand и команд в WPF, только интеракции в нашем случае назначались на интерфейсные элементы не декларативно (как с командами в WPF), а программно, что показалось не очень удобным.
Было бы интересно узнать, а почему решили не использовать для подобных штук реактивные команды? ReactiveCommand<TInput, TOutput> — это же реализация ICommand на стероидах, с ThrownExceptions, IsExecuting, etc. Interactions же были задуманы, как один из способов реализации взаимодействий с модальными окнами, и на практике использовать эти штуки обычно доводится нечасто.
Интересно, сможем ли мы зайти ещё дальше, и повсеместно взяться за формальную верификацию программного обеспечения? Ведь мало проверить соответствия типов — хотя, на мой взгляд, лучше, чем не проверять — в целях повышения надёжности было бы выгодно сделать невалидные состояния невыразимыми, и вообще, формально доказать, что софт работает корректно во всех возможных сценариях. К сожалению, сейчас такое экзотическое удовольствие дороговато.
Верификация дизайна намного проще, но для её использования требуется преодолеть культурный барьер. Думаю, ситуацию можно изменить. Двадцать лет назад автоматизированное тестирование и код-ревью были довольно экзотическими и нишевыми темами, но в конечном итоге стали мейнстримом.
Incidentally, further on in the SO post, someone makes a comment about setting AutoDetectChangesEnabled and LazyLoadingEnabled to false. This has no effect on the performance (or lack thereof, at least in EF Core.)
AsNoTracking в EFCore выключит отслеживание изменений, но на производительность не повлияет, судя по замерам и выводам из статьи Choose Your Poison on the rPi: Entity Framework, Linq2DB, or ADO.NET. Причём в секции Querying Large Sets of Data есть ещё более интересные графики. Любопытно, как там linq2db умудряется работать быстрее, чем ADO.NET. Скорее всего, linq2db делает хитрые оптимизации, а код автора — нет.
Получилось достаточно кратко. Не будет лишним упомянуть, хотя бы в комментариях, ORM для .NET и .NET Core без change tracking, которая отличается лучшей производительностью — linq2db. В связке с чем-нибудь наподобие FluentMigrator в некоторых случаях может заменить EntityFramework. Ещё есть Dapper, но это инструмент более низкоуровневой категории.
Forcible rape, as defined in the FBI’s Uniform Crime Reporting (UCR) Program, is the carnal knowledge of a female forcibly and against her will. Attempts or assaults to commit rape by force or threat of force are also included; however, statutory rape (without force) and other sex offenses are excluded.
Цитировать Википедию в общем случае неприлично, но там сформулировали понятно:
In common law jurisdictions, statutory rape is nonforcible sexual activity in which one of the individuals is below the age of consent.
Ну, просто страшный вред для здоровья, не правда ли? К сожалению, опять не первоисточник, но вы можете его найти…
Может быть, согласно исследованию цитируемых вами авторов вред не настолько страшный, но всё же ведь вред, судя по приведённой цитате. А приведённая цитата (дублирую ниже) очень напоминает алкогольную зависимость, зависимость от курения и наркотиков — там тоже человеку нужна всё большая и большая доза, при этом человек испытывает удовольствие. Конечно, употреблять или не употреблять — каждый решает сам. Но не всякое удовольствие может иметь благоприятные последствия.
Думаю, о таких вещах знать очень важно — ведь не все насильники, и для большинства сверхпотребление может вызвать зависимость, что в общем случае — не очень хорошо. Цитируемый вами anews почему-то не предоставляет ссылку на оригинальное исследование, которое обсуждается в статье, поэтому есть риск, что материал очень opinionated. Впрочем, это уже буквоедство, будем надеяться, что авторы не опустили ничего важного, а смысл мы уловили.
До 1972 г. любые открыто-сексуальные материалы были в Японии строго запрещены. Количество изнасилований с 1972 по 1995 г. снизилось втрое. Особенно сильно уменьшилось число групповых изнасилований и изнасилований, совершенных подростками. В 1972 г. подростки совершили 33 % всех изнасилований, а в 1995 – только 18%.
Благодарю за ссылки на материалы про возможную корреляцию изнасилований и легализации материалов для взрослых. Наверное, здесь действительно может быть связь. Хотя нельзя исключать влияние иных факторов на снижение количества преступлений — например, в 1991-ом году интернет стал публично доступным, предлагая новые способы досуга.
Согласно статистике из США, число изнасилований там начало снижаться как раз после 1991-ого года. Но, возможно, на это могло повлиять и что-то ещё.
Я, например, не пытаюсь скрывать свои взгляды.
А какие у вас взгляды? Вот я считаю, что если от чего-то может быть вред — значит надо об этом знать. Предупреждён — значит вооружён. Как распоряжаться этим знанием — это выбор каждого, как в случае с курением, алкоголем или иными штуками. Возможно, это некорректное сравнение, потому что от курения и алкоголя вред серьёзнее. На всякий случай напомню, что криминализовывать порнографию я не призываю.
Может быть виноват дегенерат, а не порноиндустрия или автомобилестроение?
Конечно, но это негодная аналогия, полагаю. Потому что в сообщении выше посыл был в том, что мы не можем бороться с похожими инцидентами без участия и усиленного контроля со стороны компаний наподобие PornHub. Возможно, следует разработать какие-нибудь интеллектуальные алгоритмы, которые бы более оперативно вычищали вредоносный контент того типа, про который рассказывает автор на пикрилейтед предыдущего поста — почему нет? Но если всем будет всё равно, то сами компании вряд ли займутся такими тонкостями, потому что не будет общественного запроса, потому что лишнее видео с монетизацией не помешает. В довесок, нормативная база всё-таки должна отвечать интересам общества, в котором она функционирует — не вижу в выражении интереса ничего дурного! Может быть, этот комментарий тоже можно счесть демагогией, конечно. Пинайте, если это так.
совершенно безвредным; бесконтрольное потребление;
чрезмерное употребление; в запущенных случаях.
Кажется, нигде не было про общий случай. Ну ладно, может, это эмоции — любят у нас всё запрещать. Спасибо! Для лучшего донесения мысли друг и коллега рекомендует сослаться на TED Talks.
Сделаю вид, что вопрос не риторический, и отвечу с предельно серьёзным лицом — насколько нас держат в курсе твиттерские, в отрасли производства порнографии всё бывает куда более грустно. Что попало в интернет — остаётся там навсегда. Конечно, не следует проецировать единичный опыт на индустрию в целом, но всем было бы лучше, если бы таких случаев не было.
Однако существует, например, совершенно чёткая корреляция между легализацией порно и количеством насильственных преступлений, как сексуального насилия, так и убийств и тяжких телесных.
Пожалуйста, если Вам не трудно, прикрепите ссылку на оригинальное исследование, буду рад с одной стороны ознакомиться, а с другой стороны — ссылаться в дальнейшем. Много от кого слышу этот тезис, а статьи вот не видел. Да и потом, почему на тезис о вреде порнографии для мужского здоровья вы отвечаете аргументом про снижение числа насильственных преступлений? Вы подразумеваете, что все мужчины поголовно склонны совершать насильственные преступления? Опять же, буду рад ознакомиться с исследованием, подтверждающим или опровергающим данный тезис. Или как связана моя цитата с вашей? Отмечу, что я ни в коем случае не призываю вводить цензуру или что-то запрещать, а всего лишь привожу ссылки на исследования в Science Direct, MDPI и других авторитетных изданиях, для общей информации. Вдруг кто-то не знал, и кому-то это пригодится? Почему это — плохо?
А вы уверены, что опрошенные женщины были с вами откровенны? Как там в популярной песенке — «Все мы бабы — стервы, милый — дорогой. Каждый, кто не первый — тот у нас второй»…
Мне они ничего и не рассказывали. В сообщении, которое вы цитируете, есть ссылка на первоисточник. Оценочных суждений и домыслов в статистике лучше стараться избегать.
Более того, психологи выяснили, что многие женщины напрочь забывают случайные измены, то есть они реально могут не помнить количества своих партнёров.
А есть ссылка на оригинальное исследование? С удовольствием ознакомлюсь, заранее спасибо!
А уж как повышает риск депрессии и эндокринных нарушений сексуальное воздержание любой человек, независимо от пола и без твиттера знает… В запущенных случаях это, иной раз, приводит к самоубийству.
Конечно, с этим никто не спорит, кажется. Наш мир — мир компромиссов, полагаю.
Может быть, будет уместным отметить, что для решения описанной задачи генерации IObservable из событий есть инструмент Pharmacist, который работает через ICSharpCode.Decompiler, и его версия в виде ObservableEventsSourceGenerator, которую всё никак не опубликуем.
Спасибо, что нашли время написать развёрнутый комментарий! Было очень интересно ознакомиться с содержательными аргументами и примерами насчёт того, как работают зависимости, и к каким последствиям могут приводить вне зависимости от типа стимула.
Вообще с командами в ReactiveUI работать несколько более удобно, чем с объектами типа
Interaction. Привязывать команду модели представления к элементу интерфейса можно как в XAML-разметке — с помощью синтаксиса{Binding CommandName}, — так и в коде на языках программирования C#, F#, или Visual Basic, с помощью extension-методов ReactiveUI, включая методыBind,BindCommand,OneWayBind,BindTo. То есть можно делать так:Или так:
Последний вариант хорош тем, что при переименовании свойства модели представления, к которой мы привязываем данные, мы узнаем о том, что что-то пошло не так, уже на этапе компиляции приложения. Причём для WPF, Windows Forms и Xamarin Forms это более актуально, чем для UWP или Avalonia, которые поддерживают compiled-биндинги. А на Xamarin.Android или Xamarin.iOS других вариантов в общем-то и нет. Дополнительно, можно подписываться на исключения, выброшенные экземплярами
ReactiveCommand, двумя способами — можно подписаться на исключения одной команды:Или на исключения всех команд и OAPH в приложении сразу:
Такой подход, с одной стороны, позволяет сделать приложение более отказоустойчивым и научить его отправлять отчёты об ошибках куда-нибудь для дальнейшего анализа, а с другой — позволяет не писать
try { } catch { }блоки повсеместно в лямбдах, предлагая вместо этого написать реактивный пайплайн наподобие:Впрочем, впоследних версиях ReactiveUI должен быть доступен синтаксис
BindInteraction, позволяющий привязыватьInteractionк действиям более удобным образом:Очень любопытно — у вас всё-таки получилось ознакомиться с научными исследованиями, опубликованными в peer-reviewed журналах, на которые ссылается ваш оппонент в последнем сообщении — можете как-то прокомментировать?
Ну то есть я понимаю, что обращать внимание на негативные стороны порноиндустрии сейчас немодно, но игнорировать неудобные результаты вполне приличных научных исследований, опубликованных в рецензируемых журналах, которые приводит ваш оппонент [1, 2, 3], как-то всё-таки ненаучно.
В треде же, кажется, хотели выяснить истину, а не отстоять свою точку зрения, да и что-то запрещать вроде бы никто не призывал. Заранее спасибо.
Для добавления атрибута с помощью генератора есть две причины. С одной стороны, мы должны ссылаться на генератор по-особенному, как на анализатор — если бы мы решили атрибут не генерировать, нам бы пришлось собирать два пакета — один был бы собственно генератором, а другой — содержал бы атрибут. Такой паттерн использовался, например, в библиотеке Pharmacist ещё до появления .NET 5 source generators. С другой стороны, сами генераторы исходного кода довольно тесно заинтегрированы в .NET CLI, Visual Studio, JetBrains Rider, в результате генерация происходит при любом изменении исходного файла. Выглядит это следующим образом:
Добавлю эту гифку в статью для контекста, спасибо за вопрос!
Вот, кстати, очень любопытно. Допустим, тернистый путь пройден — вы поступили, выучились, университет закончен, колоссальный объём знаний, позволяющий решать огромное количество сложных задач за вменяемое время, получен, престижный диплом — тоже. А что делать дальше? Ну, то есть, вы после окончания университета собираетесь в какую-то конкретную организацию идти работать по специальности? Наверняка уже есть планы — было бы интересно почитать. Apple, Microsoft, Google, или что-то более интересное и наукоёмкое в зарубежных НИИ?
Да, дебажили тестами. Генератор является вообще говоря обычной библиотекой с таргетом на .NET Standard 2.0, если на него сослаться классическим способом, а не как на анализатор (
ProjectReferenceбезOutputItemType="Analyzer").Поэтому весь интересный код можно вынести в
internal-объекты, расставитьInternalsVisibleToдля проектов с тестами, и обложить эти объекты с интересным кодом тестами, чтоб в нетестируемом коде было нечему ломаться. Потом уже в JetBrains Rider гулять по коду с дебаггером, разбираясь, что и где пошло не так. Тесты, кстати, сейчас лежат тут: https://github.com/AvaloniaUI/Avalonia.NameGenerator/tree/main/src/Avalonia.NameGenerator.Tests (вообще стараюсь избегать ссылок на этот репозиторий в материале, потому что он скоро уедет в главный репозиторий Avalonia)А, ещё можно делать
context.ReportDiagnostic.На самом деле всё не совсем так, как вы пишете. Да, действительно, с выходом .NET MAUI Xamarin.Forms отправится на свалку, потому что .NET MAUI и есть, по сути своей, эволюция Xamarin.Forms с новыми API. При этом, в Microsoft собираются сделать API .NET MAUI совместимым с API Xamarin.Forms. Подробнее о планах команды можно посмотреть в видео с виртуальной конференции ReactiveUI под названием Dualscreen, .NET MAUI and ReactiveUI. Там разработчик нового MAUI и старого Xamarin.Forms делится инсайдами о новом API.
Далее, на странице репозитория dotnet/maui мы видим сводку о поддерживаемых платформах, согласно которой Linux всё так же остаётся community-maintained. Это значит, что, ну, Microsoft Linux поддерживать не будет, а Avalonia уже поддерживает. Не исключено, что может появиться бакенд MAUI, основанный на Avalonia, с помощью которого можно будет обеспечить поддержку Linux — будем посмотреть.
Далее, ниши у Xamarin.Forms (или MAUI) и AvaloniaUI (или WPF) принципиально разные. Про производительность Avalonia в сравнении с WPF можно посмотреть в Core2D rendering performance WPF vs Avalonia+Direct2D,SkiaSharp,Cairo vs WPF+SkiaSharp. На Avalonia уже пишут сложные кроссплатформенные редакторы наподобие таких:
Было бы любопытно посмотреть на что-то подобное, написанное на Xamarin.Forms и работающее на десктопах. Потому что есть мнение, что основной нишей Xamarin.Forms (и MAUI) останутся приложения попроще, больше ориентированные на мобильный сегмент, а не на высокопроизводительный десктоп.
А Uno пока, как говорят, needs more love. Но я слабо знаком с этим фреймворком — про производительность или сегмент, который оно покрывает, ничего не могу сказать. Надо пробовать.
А мне вот очень понравился калькулятор с тёмно-розовыми кнопками. Справедливости ради стоит заметить, что в Avalonia 0.10.0, который уже вот-вот зарелизят, сделали тему, основанную на Microsoft Fluent Design. А ещё есть набор стилей Citrus.Avalonia. С релизом 0.10 будет сложнее угадать эту технологию по UI!
Было бы интересно узнать, а почему решили не использовать для подобных штук реактивные команды?
ReactiveCommand<TInput, TOutput>— это же реализацияICommandна стероидах, сThrownExceptions,IsExecuting, etc. Interactions же были задуманы, как один из способов реализации взаимодействий с модальными окнами, и на практике использовать эти штуки обычно доводится нечасто.Интересно, сможем ли мы зайти ещё дальше, и повсеместно взяться за формальную верификацию программного обеспечения? Ведь мало проверить соответствия типов — хотя, на мой взгляд, лучше, чем не проверять — в целях повышения надёжности было бы выгодно сделать невалидные состояния невыразимыми, и вообще, формально доказать, что софт работает корректно во всех возможных сценариях. К сожалению, сейчас такое экзотическое удовольствие дороговато.
— Почему люди не используют формальные методы? Хабр, 2019.
А в F# изобрели type providers. Которые, тем не менее, в продакшене пока встречаются нечасто.
AsNoTrackingв EFCore выключит отслеживание изменений, но на производительность не повлияет, судя по замерам и выводам из статьи Choose Your Poison on the rPi: Entity Framework, Linq2DB, or ADO.NET. Причём в секции Querying Large Sets of Data есть ещё более интересные графики. Любопытно, как там linq2db умудряется работать быстрее, чем ADO.NET. Скорее всего, linq2db делает хитрые оптимизации, а код автора — нет.Получилось достаточно кратко. Не будет лишним упомянуть, хотя бы в комментариях, ORM для .NET и .NET Core без change tracking, которая отличается лучшей производительностью — linq2db. В связке с чем-нибудь наподобие FluentMigrator в некоторых случаях может заменить EntityFramework. Ещё есть Dapper, но это инструмент более низкоуровневой категории.
Оказывается, в некоторых нормативных базах действительно бывает закреплено и такое. Согласно FBI’s Uniform Crime Reporting (UCR) Program:
Цитировать Википедию в общем случае неприлично, но там сформулировали понятно:
Может быть, согласно исследованию цитируемых вами авторов вред не настолько страшный, но всё же ведь вред, судя по приведённой цитате. А приведённая цитата (дублирую ниже) очень напоминает алкогольную зависимость, зависимость от курения и наркотиков — там тоже человеку нужна всё большая и большая доза, при этом человек испытывает удовольствие. Конечно, употреблять или не употреблять — каждый решает сам. Но не всякое удовольствие может иметь благоприятные последствия.
Думаю, о таких вещах знать очень важно — ведь не все насильники, и для большинства сверхпотребление может вызвать зависимость, что в общем случае — не очень хорошо. Цитируемый вами anews почему-то не предоставляет ссылку на оригинальное исследование, которое обсуждается в статье, поэтому есть риск, что материал очень opinionated. Впрочем, это уже буквоедство, будем надеяться, что авторы не опустили ничего важного, а смысл мы уловили.
Благодарю за ссылки на материалы про возможную корреляцию изнасилований и легализации материалов для взрослых. Наверное, здесь действительно может быть связь. Хотя нельзя исключать влияние иных факторов на снижение количества преступлений — например, в 1991-ом году интернет стал публично доступным, предлагая новые способы досуга.
Согласно статистике из США, число изнасилований там начало снижаться как раз после 1991-ого года. Но, возможно, на это могло повлиять и что-то ещё.
А какие у вас взгляды? Вот я считаю, что если от чего-то может быть вред — значит надо об этом знать. Предупреждён — значит вооружён. Как распоряжаться этим знанием — это выбор каждого, как в случае с курением, алкоголем или иными штуками. Возможно, это некорректное сравнение, потому что от курения и алкоголя вред серьёзнее. На всякий случай напомню, что криминализовывать порнографию я не призываю.
Конечно, но это негодная аналогия, полагаю. Потому что в сообщении выше посыл был в том, что мы не можем бороться с похожими инцидентами без участия и усиленного контроля со стороны компаний наподобие PornHub. Возможно, следует разработать какие-нибудь интеллектуальные алгоритмы, которые бы более оперативно вычищали вредоносный контент того типа, про который рассказывает автор на пикрилейтед предыдущего поста — почему нет? Но если всем будет всё равно, то сами компании вряд ли займутся такими тонкостями, потому что не будет общественного запроса, потому что лишнее видео с монетизацией не помешает. В довесок, нормативная база всё-таки должна отвечать интересам общества, в котором она функционирует — не вижу в выражении интереса ничего дурного! Может быть, этот комментарий тоже можно счесть демагогией, конечно. Пинайте, если это так.
Кажется, нигде не было про общий случай. Ну ладно, может, это эмоции — любят у нас всё запрещать. Спасибо! Для лучшего донесения мысли друг и коллега рекомендует сослаться на TED Talks.
Сделаю вид, что вопрос не риторический, и отвечу с предельно серьёзным лицом — насколько нас держат в курсе твиттерские, в отрасли производства порнографии всё бывает куда более грустно. Что попало в интернет — остаётся там навсегда. Конечно, не следует проецировать единичный опыт на индустрию в целом, но всем было бы лучше, если бы таких случаев не было.
Да, пожалуй, следовало бы выделить. А то уже началось линчевание. Бесконтрольное потребление почти чего угодно склонно приводить к губительным последствиям — взять, например, положительную корреляцию между употреблением Coca Cola и риском развития сахарного диабета (см. Diet Soda and Sugar-Sweetened Soda Consumption in Relation to Incident Diabetes in the Northern Manhattan Study).
Пожалуйста, если Вам не трудно, прикрепите ссылку на оригинальное исследование, буду рад с одной стороны ознакомиться, а с другой стороны — ссылаться в дальнейшем. Много от кого слышу этот тезис, а статьи вот не видел. Да и потом, почему на тезис о вреде порнографии для мужского здоровья вы отвечаете аргументом про снижение числа насильственных преступлений? Вы подразумеваете, что все мужчины поголовно склонны совершать насильственные преступления? Опять же, буду рад ознакомиться с исследованием, подтверждающим или опровергающим данный тезис. Или как связана моя цитата с вашей? Отмечу, что я ни в коем случае не призываю вводить цензуру или что-то запрещать, а всего лишь привожу ссылки на исследования в Science Direct, MDPI и других авторитетных изданиях, для общей информации. Вдруг кто-то не знал, и кому-то это пригодится? Почему это — плохо?
Мне они ничего и не рассказывали. В сообщении, которое вы цитируете, есть ссылка на первоисточник. Оценочных суждений и домыслов в статистике лучше стараться избегать.
А есть ссылка на оригинальное исследование? С удовольствием ознакомлюсь, заранее спасибо!
Конечно, с этим никто не спорит, кажется. Наш мир — мир компромиссов, полагаю.