Что такое чужие ошибки

непечатаемые символы. Какие еще возможности, хорошо совместимые с назначением этой программы, можно реализовать?

Чужие ошибки

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

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

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

Здесь очень сильно могут помочь инструментальные средства. Программы текстового поиска типа g rep помогут найти все места использования какого-нибудь имени. Перекрестные ссылки дают определенное представление о структуре программы. Граф, показывающий взаимные вызовы функций, ценен, если только он не очень велик. Пошаговый проход по программе с помощью отладчика поможет увидеть последовательность событий. Из истории ревизий программы можно узнать, что происходило в ней с течением времени. Частые изменения являются знаком того, что код был плохо понят или подвергался частой смене требований и поэтому потенциально содержит ошибки.

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

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

Если вы нашли ошибку в компиляторе, убедитесь, что это действительно ошибка компилятора, а не ошибка в вашем коде. Например, операция побитового сдвига вправо заполняет освобождающиеся биты нулем (логический сдвиг) или знаковым битом (арифметический сдвиг), а чем именно — в языках С и C++ не указано, поэтому новички иногда считают, что если конструкция типа

?i = -1; printfO

?i » 1);

выдает неожиданный результат, то ошибка — в компиляторе. На самом деле это — вопрос переносимости, потому что данный оператор имеет право действовать поразному на разных системах. Попробуйте проверить различные системы и посмотрите, что произойдет; обратитесь к описанию языка, чтобы удостовериться в правильной интерпретации результатов.

Убедитесь, что ошибка не нова. Используете ли вы последнюю версию программы. Есть ли список исправленных в ней ошибок? Большая часть программного

обеспечения проходит серию выпусков; если вы нашли ошибку в версии 4.0Ы, она может быть уже исправлена или заменена новой в версии 4.0Ь2. В любом случае немногие программисты испытывают достаточно энтузиазма, чтобы исправлять ошибки где-либо, кроме текущей версии программы.

Наконец, представьте самого себя в роли получателя вашего сообщения об ошибке. Вам следует предоставить автору максимально удобный тестовый пример, какой только сможете сделать. Будет не слишком хорошо, если ошибку можно показать только при больших объемах входных данных, или в очень сложных условиях, или при наличии множества дополнительных файлов. Сократите тест до минимального самодостаточного случая. Сообщите также дополнительную информацию, которая, возможно, связана с ошибкой, например версию самой программы, версию компилятора, операционной системы, состав оборудования на машине. Для ошибочной версии isprint, упомянутой в параграфе 5.4, мы предоставили такой тестовый случай:

/* тестовая программа для ошибки в isprint */ int main(void)

{

int с;

while (isprint(c = getchar()) || с != EOF) printf(«%c», c); return 0; }

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

% echo 1234567890 isprint_jtest . 24680

%

Лучшие сообщения об ошибке — те, что требуют для демонстрации ошибки только пары строк входных данных на стандартной конфигурации, а также те, что содержат и исправление соответствующей ошибки. Шлите такие сообщения об ошибке, какие вам хотелось бы получать самим.

Заключение

При правильном подходе отладка может превратиться в удовольствие типа разгадывания головоломки. Впрочем, неважно, нравится нам это или нет, отладка является искусством, которое нам придется демонстрировать регулярно. Было бы неплохо, если бы ошибок не возникало вовсе, поэтому мы с самого начала пытаемся избежать их, стараясь писать правильный код. Хорошо написанный код сразу содержит меньше ошибок, а те, что все же имеются, гораздо легче обнаружить.

После того как вы увидите ошибку, первое, что нужно сделать, — понять, на что «намекает» эта ошибка. Откуда она могла взяться? Есть ли в ней что-нибудь знакомое? Не менялось ли что-нибудь в программе буквально только что? Есть ли какие-нибудь особенности у входных ? данных, которые привели к ошибке? Нескольких хорошо отобранных тестовых случаев и нескольких операторов печати в коде может быть достаточно.

Если четких намеков нет, все равно, хорошо подумать — лучший пер- i вый шаг, за которым должны следовать систематические попытки локализовать местонахождение проблемы. Одним из возможных шагов будет сокращение входных

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

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

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

Дополнительная литература

Много полезных советов по отладке содержится в книгах Стива Ма-гьюира

«Создание надежного,кода» (Steve Maguire. Writing Solid Code. Microsoft Press, 1993) и Стива Мак-Коннелла «Все о коде» (Steve McConnell. Code Complete. Microsoft Press, 1993).

Devil

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

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

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

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

инквизиция

Фактически, среди людей, достигших понимания Пути, преобладают два типа отношений: люди первого типа никому не верят, преисполнены обвинений, негодования, с трудом прощают чужие ошибки. Согласно их мнению, все остальные «неправы по определению», поскольку есть лишь два мнения – «моё и неправильное». Эта преувеличенная критичность чаще всего является проявлением неуверенности в своей правоте и свидетельствует о неполном доверии к собственному Пути — такой подход вытекает из страха себя.

Люди второго типа, наоборот, всячески подчеркивают свою поддержку и снисходительность к ошибкам других, но при этом дают понять, что сами не ошибаются никогда. Такой взгляд также является попыткой скрыть свою неуверенность в себе, активно провозглашая обратное: «уж я-то знаю, а вы, когда подрастете, поймете, насколько я был прав». Это представление соседствует со страхом «а вдруг не поймут?!»… — этот подход – следствие социального страха.

liberte-egalite-fraternite-or-art-of-dissimulation-lucian-ioan-dobarta-lucido

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

«Потакатели», сочувствуя сверх меры, также не дают другим избавиться от опеки и двигаться самостоятельно. Они также препятствуют нахождению на своём Пути, поскольку уверены, что когда другой «поумнеет», он обязательно признáет исключительную правоту и мудрость их Пути, и пойдет именно по нему. При этом от их внимания ускользает, что не все Пути совместимы, но это ни в коей мере не уменьшает их индивидуальной ценности.

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

the_arrival_by_keepwalking

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

Во всех других случаях любое активное вмешательство в чужой Путь, какими бы мотивами оно не объяснялось, рискует быть лишь препятствием, а тот, кто создаёт препятствия на чужом Пути, обречен на потери силы, поскольку сражаться с Путем, с естественным ходом вещей – это значит идти против Потока Силы.

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

coullancelot

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

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

a_peaceful_place_by_calmari

Зачем вам чужие ошибки? Исправляем уязвимости в сторонних библиотеках

Время на прочтение
7 мин

Количество просмотров 4.2K

Любое ПО содержит уязвимости, причем они появляются на разных этапах его жизненного цикла. Полностью избавиться от уязвимостей в коде достаточно сложно, но можно, как минимум, сократить их количество. Для этого используются средства SAST, DAST и IAST – статический, динамический и интерактивный методы анализа соответственно. Эти средства можно гибко интегрировать в процесс разработки, тем самым повысив качество собственного кода. Дела обстоят сложнее со сторонним программным обеспечением, так как исправлять уязвимости в заимствованных библиотеках/фреймворках сложно и трудозатратно. Библиотеки могут быть без исходного кода, в компании может отсутствовать специалист, который готов такие исправления вносить. Да и в целом стоит задуматься о целесообразности исправлений, поскольку библиотека все-таки должна обновляться и поддерживаться командой, которая ее выпускает. Но что делать, если эта команда ленится, а использовать библиотеку надо, чтобы приложение работало? Тут пригодятся средства анализа состава программного обеспечения – SCA. Разберемся, какие SCA-инструменты существуют, как они помогают устранять уязвимости в заимствованных частях кода, и почему их имеет смысл использовать вместе с SAST.

Что представляет собой SCA как процесс? На вход подается исходный код приложения или в некоторых случаях исполняемый, после чего SCA определяет, какие сторонние библиотеки используются в приложении. В дальнейшем эта информация применяется для определения уязвимостей в приложении, а также может пригодиться для проверки лицензионной чистоты библиотеки. Есть различные способы определения используемых библиотек/фреймворков:

  1. Если на вход подается исходный код, то самый верный способ – посмотреть на конфигурационные файлы, так как в большинстве случаев система сборки может показать все зависимости без самой сборки. Например, на mvn dependency:tree, в которых прописаны зависимости, – нужно составить список таких файлов. Также необходимые зависимости могут создаваться путем компиляции нужных файлов, например, для Java такие файлы будут добавляться путем сборки исходного кода (см. примеры файлов):
    • Java/Scala/Kotlin — pom.xml, build.gradle, build.sbt + Manifest
    • C# — *.csproj
    • PHP — composer.json
    • JavaScript — package.json (Node.js)
    • Ruby — Gemfile, Gemfile.lock
  2. Можно определять по названиям пакетов/файлов.
  3. По хешам файлов можно понять, какие библиотеки и какой версии используются.
  4. Также можно применять специальные средства, например, OWASP dependency check, для последующей обработки полученных результатов. Например, для самостоятельного поиска уязвимостей в компонентах, которые определились подобными средствами.

Источники информации для SCA

Источники информации будут варьироваться в зависимости от рисков, которые анализируются с помощью SCA. Их можно поделить на три типа:

  1. риски безопасности (Security Risk), то есть поиск уязвимостей в сторонних компонентах;
  2. риски использования устаревшего программного обеспечения (Obsolescence Risk);
  3. лицензионные риски (License Risk), то есть правомерность использования сторонних компонентов из-за лицензионной политики.

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

  1. CVE – основной источник информации об уязвимостях в конкретных версиях продукта, самая полная из бесплатных баз данных с уязвимостями, остальные на нее опираются (см. скриншот):

  2. NVD – национальная база данных уязвимостей США, основана на CVE, для многих уязвимостей указана оценка CVSS (Common Vulnerability Scoring System) версии 3.0 и 2.0, что может быть полезно для понимания критичности вхождения. Пример:

  3. VulnDB – платная база данных, которая содержит более полную информацию по уязвимостям, чем CVE.

Пример работы SCA-инструмента

После загрузки проекта, например, git репозитория, происходит анализ его компонентов. Следует отметить, что для каждого языка программирования могут быть свои требования для проведения анализа. Например, для Java нужно, чтобы проект корректно собирался базовыми командами средства Maven, или же можно передать на анализ уже собранный проект. В первую очередь оценивается безопасность проекта, после чего следует оценка лицензионной чистоты, то есть насколько правомерно используется та или иная сторонняя библиотека. В качестве примера рассмотрим результаты анализа, проведенного с помощью продукта компании WhiteSource, так как представленный им отчёт и его визуализация наиболее наглядно демонстрируют возможности SCA-инструментов.

Этот продукт работает по 3-му способу определения используемых библиотек/фреймворков – определение по хеш-сумме: хеш-сумма библиотеки сопоставляется с различными хеш-суммами из базы данных вендора. Как можно увидеть на скриншотах выше, действительно, SCA средство может найти проблемные библиотеки и подсказать, что же с ними делать. Зачастую достаточно их просто пропатчить до безопасной версии. Но так ли все просто на самом деле?

Есть несколько нюансов:

  1. У вас может эксплуатироваться разрабатываемая или модифицированная компонента (библиотека/фреймворк), которой, попросту нет в базе данных вендора, а проверять ее нужно. Например, .jar библиотека, без которой не работает какой-то модуль вашего веб-приложения.
  2. Также вы можете использовать узкоспециализированную версию библиотеки, которую невозможно обновить до безопасной без ущерба для работы вашего приложения.
  3. Или же применяется библиотека на каком-то специализированном языке программирования, например, Solidity, для которого просто нет записи в базе данных вендора, как и поддержки анализа подобных библиотек в целом.
  4. Может возникнуть проблема с полнотой базы данных SCA-инструмента для вашего типа проектов. В основном вендоры этих систем используют свои собственные базы поиска библиотек, поэтому для вашего стэка проектов подобных библиотек в базе вендора может и не найтись.

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

Что же делать с нюансами?

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

Рассмотрим более подробно варианты использования инструментов SAST для решения подобных проблем.

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

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

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

Рассмотрим также вариант посложнее, когда есть, например, .jar файл, для которого SCA-средство не смогло найти никакой информации. На самом деле, это достаточно частый случай, когда какая-то из компонент не идентифицируется – такое происходит в 6ти из 10ти сканирований. Как в таком случае убедиться в безопасности использования заимствованной компоненты?

SCA явно показывает, что за файл не удалось проверить – тогда это можно сделать с помощью статического анализатора.

Для специалиста, занимающегося анализом байт-кода, важно отображать уязвимости и НДВ на исходный код. Для этого на завершающем этапе статического бинарного анализа запускается процесс декомпиляции байт-кода в исходный. То есть уязвимости можно демонстрировать на декомпилированном коде. Сразу возникает вопрос – достаточно ли декомпилированного кода для того, чтобы понять и локализовать уязвимость?

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

У данных подходов помимо плюсов есть и свои недостатки. При статическом анализе существует вероятность получить ложные срабатывания (когда выявленная уязвимость не является реальной). Или в процессе декомпиляции, например, даже если мы декомпилируем байт-код JVM, часть информации может восстанавливаться некорректно, поэтому сам анализ происходит на представлении, близком к бинарному коду. Соответственно, встает вопрос: как, находя уязвимости в бинарном коде, локализовать их в исходнике?

Но все эти вопросы, на самом деле, решаемы: для фильтрации ложных срабатываний также существуют специальные модули и фильтры. Решение задачи для байт-кода JVM мы описывали в статье о поиске уязвимостей в байт-коде Java.

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

Резюмируя, хотелось бы отметить: SCA-средства отчасти помогут избежать головной боли со сторонними и собственными библиотеками, но их рекомендуется использоваться в комбинации с инструментами статического анализа для действительно качественного устранения уязвимостей в приложениях. Более того, эти решения должны постоянно участвовать в разработке, для этого их стоит внедрить в процесс безопасной разработки. Это позволит проводить проверки на различных этапах жизненного цикла программного обеспечения (об этом мы писали в нашей серии статей про внедрение SAST для обеспечения безопасной разработки). Таким образом можно получить максимальную пользу от подобных инструментов.

Автор: Антон Прокофьев, ведущий аналитик Solar appScreener

Значение словосочетания «чужие ошибки»

Значение словосочетания не найдено.

Значение слова «чужой»

  • ЧУЖО́Й, —а́я, —о́е. 1. Принадлежащий другому (другим), являющийся собственностью другого (других). Чужие вещи. Чужая фуражка. Чужое письмо. (Малый академический словарь, МАС)

    Все значения слова ЧУЖОЙ

Значение слова «ошибка»

  • ОШИ́БКА, -и, род. мн.бок, дат.бкам, ж. 1. Неправильность в какой-л. работе, вычислении, написании и т. п. Допустить ошибку. Грамматическая ошибка. (Малый академический словарь, МАС)

    Все значения слова ОШИБКА

Делаем Карту слов лучше вместе

Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать
Карту слов. Я отлично
умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!

Спасибо! Я стал чуточку лучше понимать мир эмоций.

Вопрос: черносошный — это что-то нейтральное, положительное или отрицательное?

Ассоциации к слову «чужой»

Ассоциации к слову «ошибка»

Синонимы к словосочетанию «чужие ошибки»

Предложения со словосочетанием «чужие ошибки»

  • Там, где нельзя самому ошибаться, приходится повторять чужие ошибки – ну что ж, оно и проще.
  • И вот один человек получает шанс исправить чужую ошибку. Или не исправить, а героически погибнуть.
  • Также говорят, что спустя десятилетия легко критиковать и видеть чужие ошибки.
  • (все предложения)

Цитаты из русской классики со словосочетанием «чужие ошибки»

  • Есть люди, которые ужасно любят делать заметки о чужих ошибках, где бы они ни находились и какого бы рода ни были.
  • Печальный пример более цивилизованных государств должен нам служить указанием не повторять чужих заблуждений, хотя Наполеон Первый и сказал, что чужие ошибки не делают нас умнее.
  • — А почему я должна исправлять чужие ошибки?
  • (все
    цитаты из русской классики)

Сочетаемость слова «ошибка»

  • большая ошибка
    роковая ошибка
    подобная ошибка
  • ошибки прошлого
    ошибка природы
    ошибки молодости
  • исправление ошибок
    множество ошибок
    цена ошибки
  • ошибка вышла
    ошибки случаются
    ошибка произошла
  • совершать ошибку
    допустить ошибку
    исправить ошибку
  • (полная таблица сочетаемости)

Афоризмы русских писателей со словом «чужой»

  • У чужих людей
    Горек белый хлеб.
  • Не зарься на скарб чужой,
    Не пачкай чужую честь —
    Не будешь горбат душой,
    А будешь такой, как есть.
  • Жить только собой — это полбеды. Гораздо страшней, живя только собой, затрагивать походя и чужие судьбы.
  • (все афоризмы русских писателей)

Отправить комментарий

Дополнительно

Смотрите также

ЧУЖО́Й, —а́я, —о́е. 1. Принадлежащий другому (другим), являющийся собственностью другого (других). Чужие вещи. Чужая фуражка. Чужое письмо.

Все значения слова «чужой»

ОШИ́БКА, -и, род. мн.бок, дат.бкам, ж. 1. Неправильность в какой-л. работе, вычислении, написании и т. п. Допустить ошибку. Грамматическая ошибка.

Все значения слова «ошибка»

  • Там, где нельзя самому ошибаться, приходится повторять чужие ошибки – ну что ж, оно и проще.

  • И вот один человек получает шанс исправить чужую ошибку. Или не исправить, а героически погибнуть.

  • Также говорят, что спустя десятилетия легко критиковать и видеть чужие ошибки.

  • (все предложения)
  • собственная ошибка
  • учиться на чужих ошибках
  • совершать ошибки
  • исправлять свою ошибку
  • прошлые ошибки
  • (ещё синонимы…)
  • человек
  • приезжий
  • фильм
  • чужак
  • враг
  • (ещё ассоциации…)
  • ошибаться
  • ошибочность
  • неправильно
  • промах
  • опечатка
  • (ещё ассоциации…)
  • чужие люди
  • ощущение чужого присутствия
  • стали чужими
  • за чужой счёт
  • (полная таблица сочетаемости…)
  • большая ошибка
  • ошибки прошлого
  • исправление ошибок
  • ошибка вышла
  • совершать ошибку
  • (полная таблица сочетаемости…)
  • Разбор по составу слова «чужой»
  • Разбор по составу слова «ошибка»
  • Как правильно пишется слово «чужой»
  • Как правильно пишется слово «ошибка»

Обсессивно-компульсивное расстройство (ОКР) представляет собой один из видов навязчивых состояний. Синдром ОКР является психическим заболеванием, которое проявляется в возникновении навязчивых, пугающих мыслей. Например, больной может без конца что-нибудь перепроверять, испытывать необъяснимое беспокойство, то и дело перемывать посуду, мыть руки, открывать и закрывать двери в комнате и т.д.

Согласно статистике, ОКР подвержены от 1 до 3 процентов людей. При этом около половины больных не состоят в браке и только четверть из них может полноценно работать.

ОКР может иметь множество самых разных проявлений, поэтому некоторые люди узнают, что больны, только после визита к психиатру. Одной из форм ОКР является Синдром Грамматической Педантичности (СГП). Страдающие им люди не могут успокоиться, пока не исправят все грамматические ошибки, которые им повстречаются за день. Так что, если вы чювствуете безпокойство, когда видите чужые грамотические ошибки – у вас есть повод задуматься…

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

Откуда берется желание исправлять других?

На сегодняшний день ученые пока слабо изучили эту черту человеческого поведения. Кто-то связывает желание исправлять чужие ошибки, от фактологических до грамматических, пассивной агрессией, желанием все контролировать, но на самом деле причин может быть гораздо больше. О них рассказывает психолог Мария Галушкина:

«В принципе, искать одно-единственное объяснение какому-то явлению — дело неблагодарное, не всегда нужное и попахивает абсолютизмом. Практически всегда причин несколько, они сочетаются причудливым образом в разных пропорциях, для каждого отдельного человека — в своих.

Контроль

Я бы скорее назвала это не желанием все контролировать, а невозможностью выдерживать собственное напряжение. В такой ситуации контроль — это способ избавиться от напряжения, которое возникает либо в ситуации неопределенности, либо в ситуации угрозы нашей картине мира. Напряжение может быть разной силы и оттенка, в зависимости от ситуации. Оно может быть зудящее от неправильной запятой, может быть болезненное, если мы видим что-то „неправильное“, но что нас напрямую не касается (например, когда на ваших глазах мать ругает ребенка за оплошность). Оно может становиться невыносимым, если ошибка другого напрямую касается вас (ваш коллега, с которым вы вместе делаете проект, несет на презентации какую-то чушь). И очень часто мы поправляем, чтобы сбросить это напряжение, не тратить силы на его выдерживание. Это действительно требует меньше энергозатрат. Сравните: можно написать „Ты ничего не понимаешь“ или порефлексировать и прийти к мысли „Каждый имеет право на собственное мнение, даже если оно очень не похоже на мое… Интересно, почему именно эти слова незнакомца меня так зацепили?“.

Сохранение привычной картины мира

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

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

Нас в школе учили правильно писать. Когда мы писали диктант или сочинение хорошо и без ошибок, то мы получали пятерку от учителя и похвалу (или отсутствие наказания) от родителей, из чего делали вывод „Я молодец, когда не делаю ошибок. Если делаю ошибки, я плохой“. Мы вырастаем с этим выводом и вдруг натыкаемся в чьем-то сообщении или комментарии на лишнюю запятую. И человек, поставивший эту запятую, не то что не в панике и самобичевании, что он проглядел такую ошибку, он живет себе спокойно и прекрасно себя чувствует. Ему никто не ставит двойку и не вызывает родителей в школу. В результате может пронестись такая мысль: „Как он может жить спокойно и считать себя хорошим, когда он сделал ошибку? То есть если ему так можно, то я зря столько лет страдал над правилами пунктуации? А если я зря страдал… Как же мне оставаться хорошим, если мне теперь не через что доказывать, что я хороший?! Нет, так нельзя, нужно указать ему на ошибку! Все-таки их делать неправильно, пусть обратит внимание“. И вот так, стараясь защитить себя и ненапрасность приложенных усилий, мы указываем людям на их ошибки.

Влияние общества

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

Как научиться переживать чужие ошибки

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

Рефлексируйте

Это самый сложный, но довольно полезный путь. Лучше всего следовать по нему под наблюдением терапевта. Каждый раз, когда вам очень хочется исправить чужое «-тся/-ться» или сделать комментарий относительно неглаженой рубашки, подумайте, почему именно это провоцирует у вас такое жгучее желание. И почему вы сами не позволяете себе выйти в свет с пятном от зубной пасты на футболке или в разноцветных носках.

Выдерживайте

И уважайте чужие личные границы. Другой человек может совершать какие-то действия, которые с вашей точки зрения выглядят неправильными: путать холодец со студнем, забыть любимый кофе популярного актера, носить странную модную одежду несочетающихся цветов. Это выбор другого человека, и он прекрасно обитает в пределах его личных границ (по крайней мере, пока человек не начнет навязывать вам свое видение, вот тут уже можно начать возмущаться).

Попробуйте так же

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

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

Синдром грамматической педантичности заставляет людей навязчиво исправлять грамматические ошибки

Синдром грамматической педантичности заставляет людей навязчиво исправлять грамматические ошибки

Обсессивно-компульсивное расстройство (ОКР) характеризуется навязчивыми мыслями, становящимися причиной беспокойства, опасения или страха.

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

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

Большинство людей, страдающих от ОКР, об этом даже не подозревают, пока психиатр не поставит диагноз. Существует много способов влияния ОКР на человека: у разных людей разные симптомы, и есть несколько других заболеваний, которые являются производными от ОКР — например, синдром грамматической педантичности.

Это форма ОКР, при которой больные чувствуют себя обязанными исправлять каждую грамматическую ошибку. Пожалуй, к таким людям можно причислить некоторых граммар-наци.

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

Тыканье пальцем на чужие ошибки, отвлекает от своих…

Коммент к цитате #1550817

Порою, чужие грабли, могут стать своею взлётной полосой…

Признавать чужие ошибки намного легче, чем свои.

К чужим ошибкам присматриваемся, а учимся на своих

Мир непредсказуемый так зыбок,
И возможны скользкие моменты.
Чтоб не совершать чужих ошибок,
Надо избегать чужих советов.

Чужие ошибки больней ощущаешь,
когда через время сам повторяешь.

Нельзя исправлять чужие ошибки, только потому, что кто-то их считает твоими.

Учиться на чужих ошибках нужно обязательно, чтобы совершать свои —
Более изощрённые и продвинутые.
Эволюция не должна стоять на месте!

Кошачье

Ты слыхал, есть дома
Недолюбленных брошенных кошек?
Там короче зима,
Виден март из открытых окошек.

Ярко-рыжий восход
Золотит черепичные крыши.
Даже жиголо-кот
Там мяучит скромнее и тише.

Ни на ком нет вины
За свои и чужие ошибки,
И вчерашние сны
Не страшны, нереальны и зыбки.

Опубликовала  пиктограмма женщиныДемура  16 мая 2023

Вслед Михаилу Палецкому.

Глупые мы люди.

Чужими ошибками нужно восхищаться! Все это знают, но те, кто восхищаются, никогда не сознаются.

Конечно лучше учиться на чужих ошибках, но, к сожалению, свои действуют гораздо эффективнее

Как переформатировать одно истинное высказывание в другое, сохранив при этом смысл и даже усилив его?
К примеру выражение: «Умный учится на чужих ошибках, а дурак на своих» усиливает по смыслу другое: «Умный тот, кто учится у более умных, а дурак умных ненавидит».

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

—На чужих ошибках учатся, а на своих женятся.

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

Зачем вам сумерки обид?
Простите всем и всё. Живите!
Так просто, радостно, как вид
Чудесных далей. Не ищите

Чужих ошибок. Вам своих не перечесть.
Ищите Чуда! Тогда откроется Небес
Святая Тайна. И лишь тогда проснётся честь,
Вздохнёт легко и благодарно. И сгинет бес.

Опубликовала  пиктограмма женщиныАша  21 мар 2022

Понравилась статья? Поделить с друзьями:
  • Что такое цепь ошибок
  • Что такое функция ошибок гаусса
  • Что такое фронтальная ошибка
  • Что такое форматный контроль фсс код ошибки 503
  • Что такое фатальная ошибка на сайте